我有 2 个实体作为公司和用户。
用户 --> 多对一 --> 公司
SQL select * from user where companyid in (select companyid from Company where companyName = 'Company1')
现在我可以用以下两种方式编写这个 SQL
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();
这里的问题是休眠会话中将加载多少对象?公司对象是否会被加载到休眠会话中?