JPAでSpring Data RESTを使用します。私は別のRDBMSテーブルでモデル化されたAccountStatusと呼ばれる別のものと多対1の関係を持つUserエンティティを持っています。 JSON表現は次のようになります。今、私は、上/ユーザー/ 123およびペイロードPATCH要求を使用してアカウントステータスを変更しようとSpringデータRESTで@ManyToOne関係を更新するにはどうすればよいですか?
@ManyToOne(optional = false)
@JoinColumn(name = "account_state")
@Getter @Setter private AccountState accountState;
:
{
"id": "123"
"username": "user1",
"accountStatus": {
"id": "1",
"status": "Active"
}
}
Userエンティティ関係されています。
{"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を置き換えて成功させようとしました。
私は間違っていますか?
可能な複製を割り当てるリソースを参照するには、アカウントの状態のURIを使用している:修正する方法"XからYに変更されたインスタンスの識別子"?](http://stackoverflow.com/questions/4179166/hibernate-how-to-fix-identifier-of-an-instance-altered-from-x-to- y) – Makoto
@Makoto、私は他の質問が所有エンティティのPKを変更することだと思う、私の問題は、ユーザーとAccountStateの間にカスケードが定義されていない場合の子関係を変更することです。 – florind