【发布时间】:2012-08-28 19:19:55
【问题描述】:
我有一个 SQL 查询,我想将其转换为条件(Hibernate 3.3.2),以将其用于我的持久层。 这就是查询:
select last_name
from member
where
member.end_date > SYSDATE
group by member.last_name
having count(member.last_name) >1;
我已经尝试了很多组合,但没有对我有利的结果......这是我的代码:
Criteria criteria = getSession(false).createCriteria(Member.ENTITY_NAME);
criteria.setProjection(Projections.projectionList()
.add(Projections.groupProperty("lastName"))
.add(Projections.count("lastName").as("cptLastName"))
);
criteria.add(Restrictions.ge("endDate", now))
.add(Restrictions.le("startDate", now))
//.add(Restrictions.gt("cptLastName", new Integer(1)))
.addOrder(Order.asc("lastName"))
;
通过使用注释行编写它,我有一个对象列表,其中包含名称和该名称在数据库中出现的次数。但是当我想取消它时,这是错误: java.sql.SQLException: ORA-00904: "Y1_": 标识符无效
为了开发此代码,我受到以下不同帖子的启发:
我认为我离解决方案不远了,但有人可以帮助我吗? 如果您有任何问题,请随时问我。 如果您找到了另一种解决方法让我粘贴到此查询中,请不要犹豫提出它...
【问题讨论】:
标签: java sql hibernate criteria having