如何使用Spring Data REST更新@ManyToOne关系?

如何使用Spring Data REST更新@ManyToOne关系?,第1张

概述我在JPA中使用Spring Data REST.我有一个User实体,它与另一个名为AccountStatus的多对一关系在一个单独的RDBMS表中建模. JSON表示如下所示:{ 'id': '123' 'username': 'user1', 'accountStatus': { 'id': '1', 'statu

我在JPA中使用Spring Data REST.我有一个User实体,它与另一个名为AccountStatus的多对一关系在一个单独的RDBMS表中建模. JSON表示如下所示:

{   "ID": "123"   "username": "user1","accountStatus": {     "ID": "1","status": "Active"   }}

用户实体中的关系是:

@ManyToOne(optional = false)@JoinColumn(name = "account_state")@Getter @Setter private AccountState accountState;

现在我尝试使用/ users / 123上的PATCH请求和有效负载更改帐户状态:

{"accountState":{"ID":0}}

但是我收到一个错误:

 "IDentifIEr of an instance of com.domain.account.AccountState was  altered from 1 to 0; nested exception is org.hibernate.HibernateException:  IDentifIEr of an instance of com.domain.account.AccountState was altered from 1 to 0"

我还尝试使用@HandleBeforeSave / @ HandleBeforelinkSave从存储库中获取新的AccountState并替换user.accountStatus但没有成功.

我究竟做错了什么?

最佳答案这实际上取决于您是否有AccountState的导出存储库.如果您这样做,您可以使用针对/ users / {ID}的PATCH更新您的帐户状态:

{    "accountState": "http://localhost:8080/accountStates/2"}

因此,您使用帐户状态的URI来引用要分配的资源 总结

以上是内存溢出为你收集整理的如何使用Spring Data REST更新@ManyToOne关系?全部内容,希望文章能够帮你解决如何使用Spring Data REST更新@ManyToOne关系?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1263190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存