1. ホーム
  2. java

[解決済み] Hibernate の detached、persistent、transient オブジェクトとは何ですか?

2022-10-16 08:59:58

質問

hibernateのdetachedオブジェクト、persistentオブジェクト、transientオブジェクトとは何ですか?例を挙げて説明してください。

どのように解決するのですか?

A new に関連付けられない永続的なクラスのインスタンスです。 Session に関連付けされていない永続的なクラスのインスタンスは、 データベースに表現がなく、識別子の値もないとみなされます。 過渡的 をHibernateで実行します。

Person person = new Person();
person.setName("Foobar");
// person is in a transient state

A 永続的 インスタンスは、データベース内の表現、識別子値、および関連する Session . トランジェントインスタンスを 永続的 と関連付けることで Session :

Long id = (Long) session.save(person);
// person is now in a persistent state

では、もし close を実行すると、Hibernate の Session になると、永続的なインスタンスは デタッチド インスタンスに添付されていません。 Session に接続されなくなります (しかし、まだ変更可能で、新しい Session に再接続することはできます)。

これらのことはすべて、全体の中で明確に説明されています。 第10章 オブジェクトを扱う で明確に説明されています。間違いなく、必読です。