【发布时间】:2018-11-04 14:46:45
【问题描述】:
当从 Hibernate Criteria api 迁移到 CriteriaQuery 时,我遇到了一个抽象类的通用 DAO,它在公共字段上有一个 where 但在其 id 上执行选择,即使每个类的 id 完全不同。
旧投影是这样的
criteria.setProjection(Projections.id());
有没有办法用 CriteriaQuery 以类似的方式做到这一点?
编辑:完整标准代码
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(MyEntity.class);
detachedCriteria.add(Restrictions.in("accountID", accounts));
detachedCriteria.setProjection(Projections.id());
EntityManager em = ...;
Criteria criteria = detachedCriteria.getExecutableCriteria((Session) em.getDelegate());
List<Integer> list = criteria.list();
【问题讨论】:
-
我们需要查看完整的查询
-
@JEY 从这段代码运行的休眠查询看起来像这样“休眠:从配置文件 this_ 中选择 TOP(?) this_.profilePK as y0_ where this_.accountID in (?)”所以真的没有很重要。
-
没有完整的标准
-
@JEY 我添加了完整的标准..
标签: java hibernate jpa criteriaquery