我有 3 个课程:第一,第二,第三我有大约像这样的 createria:
First.createCriteria().listDistinct {
if(....){fetchMode("second", FetchMode.JOIN)
fetchMode("second.third", FetchMode.JOIN)}
order(sortOrder, orderBy)
order("id", "desc")
}
(当“如果”为假时,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请求,因为(distinct,join,order by)不能在同一级别上。我在 SQL 开发人员那里吃午饭。没有 (distinct, join, order by) 之一的此请求可以正常工作。我能用这个做什么。可以通过我可以强制休眠在“不同的选择”级别中执行(加入,不同)和(顺序)吗?我如何用另一个 SELECT 包装 SELECT?
select *
from
(select
distinct id,
secondfield
from
FIRST as firsts
inner join
SECOND
... on ...
where(......))
order by
(......)