いつエンティティを永続コンテキストから切り離す必要がありますか?永続コンテキストからエンティティをデタッチする場合の使用ですか?
0
A
答えて
1
エンティティの分離とは、休止状態がエンティティへのアクセスをもう持たないことを意味します。以下の例を参照してください。
//Thid is where the entity is in transient State (Ther data is not saved, but initialized)
User user = new user
user.setName("User1");
Configuration configuration = new Configuration().configure();
StandardServiceRegistryBuilder builder = (StandardServiceRegistryBuilder) new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties());
ServiceRegistry serviceRegistry = builder.build();
SessionFactory factory = configuration.buildSessionFactory(serviceRegistry);
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
user.setUserName("Hello There");//Here the data is in persistent state
session.save(user);
user.setUserName("Hello There Again");//Here also the data is in persistent state
user.setUserName("Hello There Again for second time");//Here also the data is in persistent state, but the hibernate will take the last update, if you see the query in log/console, you will find only one update query.
tx.commit();
session.close();
user.setUserName("Hello Again Final");//Since the session is closed, the data is not persisted, Here the entity is detached
factory.close();
StandardServiceRegistryBuilder.destroy(serviceRegistry);
データベースのクローズ後にエンティティの分離が発生するのは、通常はsession.close()を実行した後です。ワークフロー上の
詳しい情報はこちらをhttps://javabrains.io/courses/hibernate_run/lessons/Understanding-State-Changes
+0
あなたは絶対に正しいですが、detach()と呼ばれるメソッドがあり、それをデタッチするメソッドを明示的に呼び出すことはできますか?私はデタッチエンティティの必要性を尋ねていますか? –
関連する問題
- 1. Hibernateの永続コンテキストからエンティティ内のエンティティをデタッチ
- 2. Springデータリポジトリ(Spring 4)を使用している場合、永続コンテキストからエンティティを切り離す方法
- 3. オブジェクトコンテキストからのエンティティのデタッチ
- 4. DaoException:エンティティがDAOコンテキストからデタッチされました
- 5. Javaメッセージングとキューイングシステムで永続性を使用する場合
- 6. 永続ユニットが@Transactionalのみを使用している場合
- 7. NonUniqueObjectException永続オブジェクトの場合
- 8. Zendでアクションスタックを使用する場合のアクション間のデータの永続化
- 9. storageClassの永続ボリュームを使用する場合のGoogleクラウド/ Kubernetesでのスナップショット
- 10. Hibernateオブジェクトの永続属性をデタッチする方法
- 11. OutlookアドインでEWSとRest APIを使用する場合の永続的なサクセス
- 12. ステートレスEJB間の永続コンテキスト
- 13. JPA - オブジェクトを永続化するときにgetTransaction()を使用する場合
- 14. Hibernate 5.xとWildlfyでUSYNCHRONIZED永続コンテキストを使用
- 15. EF(4)コンテキスト外のオブジェクトをデタッチする
- 16. Spring Dataデタッチされたエンティティを永続化するとJPA監査が失敗する
- 17. Homesteadを使用した場合、永続的なデータ消失
- 18. Silverlightでエンティティを使用してLINQを結合する場合
- 19. プロパティからの永続ユニット名とエンティティの除外
- 20. Springブート永続コンテキスト注釈
- 21. 複数のサブクラスからエンティティのリストを永続化する方法
- 22. 春のコンテキストでプロップキーを使用する場合
- 23. JPAは永続性エンティティと既に永続化エンティティをカスケードしようとしますか?
- 24. HibernateのJackson Jsonからフェッチされた永続エンティティ
- 25. Jerseyを使用したサーバーホストに基づくHibernate永続コンテキスト
- 26. SQLiteOpenHelperクラスのコンテキストとは何ですか?異なるクラスから異なるコンテキストを提供する場合は、
- 27. BlackBerryで永続ストアを使用する
- 28. Symfony3永続生成エンティティ
- 29. エンティティElementCollectionキーでJPAのカスケード永続
- 30. Java EEバッキングBeanとjsfを使用した永続エンティティ
私の意見では見つけることができ、我々は事故遅延ロードを持っていないし、そうできるだけ早くこれを行う必要があります。しかし、もちろん私の意見です。 –