Hibernate createCriteria加入,顺序,不同于一个级别



我有3个类:第一,第二,第三我大约有这样的createria:

First.createCriteria().listDistinct {
            if(....){fetchMode("second", FetchMode.JOIN)
            fetchMode("second.third", FetchMode.JOIN)}
            order(sortOrder, orderBy)
            order("id", "desc")
}

(当" if" false,createCriteria工作正常)

当" if" true Hibernate生成的SQL请求

select 
  distinct id,
  secondfield
from
  FIRST as firsts
inner join
  SECOND
       ... on ...
inner join
  THIRD
       ... on ...
where(...)
order by 
     firsts.name asc
     firsts.id desc

但不能执行SQL请求,因为(不同,加入,订购)不能处于同一级别的togehter。我在SQL开发人员中午餐。此请求没有(不同的,加入,订单)的工作正常。我该怎么办。愿我可以在"不同的选择"级别中强迫冬眠(加入,不同)和(顺序)?我如何包装另一个选择?

select *
from 
   (select 
     distinct id,
     secondfield
   from
     FIRST as firsts
   inner join
     SECOND
          ... on ...
   where(......))
order by
    (......)

您可以尝试Groovy.sql。*,它比HQL查询给您很多摩尔的灵活性。

尝试以下操作:http://groovy.codehaus.org/tutorial 6 - sql

相关内容

  • 没有找到相关文章

最新更新