PersistentObjectException: 永続化例外に渡された離脱したエンティティ
2022-02-12 23:42:26
迷子のオブジェクトを永続化(保存)する場合のエラーを見るだけでよい。
オブジェクトを永続化するために、通常HibernateはID生成ポリシーに従って自動的にID値を生成することが分かっていますが、このオブジェクトIDはすでに値を持っているため、すべてエラーをスローします。このエラーは、次のような1対多の@OneToManyの関連付けの関係を構成したときに発生します。
@OneToMany(targetEntity = Role.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "sys_user_role", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id", unique = true))
private Set<Role> roles = new HashSet<>();
カスケード関係がCascadeType.ALLなので、saveするとカスケード・オブジェクトRoleが保存されますが、Roleはすでに存在しているので、エラーが報告されます。cascadeをCascadeType.MERGEまたはCascadeType.REFRESHに変更し、カスケード・オブジェクトがRoleテーブルに存在することを示し、更新は行いますが、保存は行わないようにします。
CascadeType.ALLは、カスケード操作の際に注意して使用します。
関連
-
[解決済み] Hibernateはorg.hibernate.AnnotationExceptionをスローします。エンティティに指定された識別子がありません: com..domain.idea.MAE_MFEView
-
[解決済み】Hibernateの問題 - "マッピングされていないクラスをターゲットにした@OneToManyまたは@ManyToManyの使用"
-
[解決済み】DTOからエンティティへ、エンティティからDTOへ
-
[解決済み] org.hibernate.PersistentObjectException: 永続化するために渡されたデタッチド・エンティティー
-
[解決済み] Another エンティティのマッピングでカラムが繰り返されるエラー
-
[解決済み] ConfigurationException: プロジェクトのルート・フォルダに cfg.xml リソース [hibernate.cfg.xml] が見つかりませんでした。
-
[解決済み] Spring Boot spring.datasource.schema VS spring.jpa.properties.hibernate.default_schema
-
[解決済み] Spring HibernateのDataIntegrityViolationExceptionを解決するにはどうすればよいですか?
-
[解決済み] Hibernate関数Restrictions.allEq(Map<String、Object>)は、どのようにNULL値を処理しますか?
-
Hibernate Newbie FAQ org.hibernate.service.spi.ServiceException: 要求されたサービスを作成できません
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例