会社とユーザーとして2つのエンティティがあります。
ユーザー --> ManyToOne --> 会社
SQL select * from user where companyid in (select companyid from Company where companyName = 'Company1')
これで、この SQL を以下の 2 つの方法で記述できます
1) 切り離された基準の使用
DetachedCriteria subCriteria = DetachedCriteria.forClass(Company.class);
subCriteria.add(Restrictions.eq(" companyName ", companyName));
subCriteria.setProjection(Property.forName("companyid") );
Criteria criteria = session.createCriteria(User.class);
criteria.add(Subqueries. propertyIn("companyid", subCriteria));
criteria.list();
2)基準を次のように使用する
session.createQuery("From User u Where u.company.name like 'Company1'").list();
ここでの質問は、いくつのオブジェクトが hibernate Session にロードされますか? Company Object は休止状態のセッションにロードされますか?