簡體   English   中英

使用條件休眠嵌套查詢

[英]Hibernate nested query using criteria

是否可以創建以下sql生成條件:

select name from (select distinct name from person) as aliasname  order by lower(name);

這里有兩個SQL-

  1. select distinct name from person

  2. select name from <output of 1> as aliasname order by lower(name)

我想創建標准,然后執行criteria.list()

我認為,這將滿足您的需求:

criteria.addOrder(Order.asc("name").ignoreCase())
        .setProjection(Projections.distinct(Projections.property("name")))
        .list();

或者,此條件使用帶有名稱投影的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();

我沒有答案,但是為什么要第二選擇?

SELECT DISTINCT NAME FROM PERSON AS ALIASNAME ORDER BY LOWER(NAME)

將返回相同的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM