Hibernate Criteria子查询

时间:2013-11-06 18:38:39

标签: hibernate criteria exists subquery

有人可以帮我写标准中的以下查询吗?我不知道怎么做那个子选择。

select * from modulo m  
left outer join grupomodulo gm on m.grupomodulo_id = gm.Id  
left outer join grupousuariomodulos gum on gum.modulo_id = m.Id  
left outer join grupousuario gu on gum.grupousuario_id = gu.Id  
where exists  
(  
select Id from  
(  
select distinct(sm.Id), sm.nome from modulo sm  
left outer join grupomodulo sgm on sm.grupomodulo_id = sgm.Id  
left outer join grupousuariomodulos sgum on sgum.modulo_id = sm.Id  
left outer join grupousuario sgu on sgum.grupousuario_id = sgu.Id  
order by sm.Nome  
limit 10 offset 10  
)  
as subquery  
where Id = m.Id  
)  
order by m.Nome

1 个答案:

答案 0 :(得分:0)

子选择需要通过Subqueries完成。

DetachedCriteria subCriteria = DetachedCriteria.forClass(Modulo.class, "modulo");
criteria.add(Subqueries.exists(subCriteria));

请注意,这不是order bylimit。我先看看这是否有效,然后查看排序和限制。如果没有详细信息,我假设joins域类已经完成了Modulo