【发布时间】:2015-04-25 11:43:43
【问题描述】:
我在将 HQL 转换为条件查询时遇到了一些问题。作为规范的一部分,我需要 Criteria 查询的返回值是 Criteria 类型,这可能不会更改。
这是我完整的 HQL 查询:
select sum(m.frequent / case when m.vigilants.size > 1 then m.vigilants.size
else 1 end) from Museum m inner join m.vigilants v where size(m.vigilants) > 1
and v.forename = 'Mike Jones' or size(m.vigilants) = 1 and v.forename='Mike Jones'
这是我迄今为止在获取标准查询方面的尝试
Criteria criteria = session.createCriteria(Museum.class, "m");
criteria.createAlias("m.vigilants", "v");
criteria.setProjection(Projections.distinct(Projections.property("m.id")));
criteria.add(Restrictions.or(Restrictions.sizeGt("vigilants", 1), Restrictions.eq("v.forename", "Mike Jones")));
老实说,我真的被卡住了,并且已经尝试了一天来让它工作,我不知道如何将这个 HQL 转换为 Criteria 查询!
【问题讨论】:
标签: java database hibernate hql criteria