ホームページ >Java >&#&チュートリアル >Hibernate の「オブジェクト参照が保存されていない一時インスタンス」エラーを解決するにはどうすればよいですか?

Hibernate の「オブジェクト参照が保存されていない一時インスタンス」エラーを解決するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-18 01:36:13783ブラウズ

How to Resolve Hibernate's

Hibernate の「オブジェクト参照の保存されていない一時インスタンス」エラーの解決

Hibernate を使用してオブジェクトを保存しようとすると、次のエラーが発生する場合があります:

object references an unsaved transient instance - save the transient instance before flushing

を理解するエラー

このエラーは、データベースに存在しない 1 つ以上の項目を含むコレクションがエンティティ内にあることを示します。 Hibernate では、他のエンティティによって参照されるすべてのエンティティがデータベースに保存 (永続化) されるか、一時的としてマークされる必要があります。

解決策

このエラーの解決策は、次のように指定することです。コレクション マッピングのカスケード オプション。これは、XML または注釈を使用して行うことができます:

XML:

<collection name="collectionName" cascade="all">
    ...
</collection>

注釈:

@OneToMany(cascade = CascadeType.ALL)
private List<ChildEntity> collectionName;

説明

作成者cascade="all" または CascadeType.ALL オプションを指定すると、親エンティティを保存するときにコレクション内のすべてのエンティティをデータベースに保存するように Hibernate に指示します。これにより、参照されたすべてのエンティティがデータベースに確実に保持され、エラーが解決されます。

以上がHibernate の「オブジェクト参照が保存されていない一時インスタンス」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。