[英]Hibernate nested query using criteria
Is it posible to create a criteria for generating below sql: 是否可以创建以下sql生成条件:
select name from (select distinct name from person) as aliasname order by lower(name);
here there are two sql - 这里有两个SQL-
select distinct name from person
select name from <output of 1> as aliasname order by lower(name)
i want to create the criteria and then do criteria.list()
我想创建标准,然后执行criteria.list()
I think, this will suit your needs: 我认为,这将满足您的需求:
criteria.addOrder(Order.asc("name").ignoreCase())
.setProjection(Projections.distinct(Projections.property("name")))
.list();
or, this criteria uses a DetachedCriteria with a name projection as a subquery: 或者,此条件使用带有名称投影的DetachedCriteria作为子查询:
DetachedCriteria distinctNamesCriteria = DetachedCriteria.forClass(Person.class);
distinctNamesCriteria.setProjection(Projections.distinct(Projections.property("name")));
criteria.add(SubQueries.propertyIn("name", distinctNamesCriteria))
.addOrder(Order.asc("name").ignoreCase())
.list();
I don't have an answer for you, but why are you you doing a second select? 我没有答案,但是为什么要第二选择?
SELECT DISTINCT NAME FROM PERSON AS ALIASNAME ORDER BY LOWER(NAME)
would return the same data. 将返回相同的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.