0

有人可以帮我在标准中编写以下查询吗?我不知道如何进行子选择。

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
4

1 回答 1

0

子选择需要通过Subqueries完成。

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

请注意,这是没有order byand的limit。我会首先看看这是否有效,然后查看排序和限制。如果没有详细信息,我假设joins已经在您的ModuloDomain 类中完成。

于 2013-11-06T21:30:30.667 回答