私のコードは、ユーザーに関連するすべての情報を取得します。
SessionFactory sessionFactory = HibernateUtilities.configureSessionFactory();
Session session = sessionFactory.openSession();
UserDetails ud = null;
Set<Address> userAddress = null;
try {
session.beginTransaction();
ud = (UserDetails) session.get(UserDetails.class, 1);
userAddress = ud.getAddresses();
session.getTransaction().commit();
} catch (HibernateException e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
session.close();
}
System.out.println(ud.getName());
for(Address addr: userAddress){
System.out.println("State " + addr.getState());
}
単にユーザーのesのセットud.getAddresses()
を返します。Address
私の質問は、セッションがすでに閉じられているのに、なぜud
オブジェクトにその値(名前など)が残っているのですか?クラスgetAddresses()
のインスタンス変数です。UserDetails
しかし、なぜその値を取得できないのに、UserDetails
クラスの通常のインスタンス変数を取得できるのでしょうか。
ud.getAddresses()
です@EmbeddedCollection
。