我在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关系?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)