つまり、選択クエリに含めていないためです。SQL クエリを作成して Bean トランスフォーマーを使用している理由がわかりませんか? これは休止状態を使用する非常に奇妙な方法です。最終的に、返されるのは休止状態の管理対象エンティティではないことを意味します。これは、選択した特定のものをマップした単なるオブジェクトです。
休止状態を使用する「通常の」/「正しい」方法は次のようになります。
private User getUser(int id, String userType)
{
User result;
session = HibernateUtil.getWilsonsSessionFactory().getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("select u from User u
where u.id = :id and u.role = :role");
query.setParameter("id", id);
query.setParameter("role", userType);
result = (User)query.uniqueResult();
session.getTransaction().commit();
return result;
}
次に返されるのは、マッピングされたすべてのプロパティが設定された Hibernate エンティティです。
(個人的に uniqueResult をそのように使用することはありませんが、それが主にスタイルの好みであることは認めます。)