在休眠中取不重复的行

问题描述:

我想从Hibernate中的查询中获取列表,但没有重复的元素。在休眠中取不重复的行

目前,我有这样的:

SELECT t FROM Table t join fetch t.list tl WHERE tl.userid=:userid AND tl.tableid=t.id 

这工作好!这个问题的,它返回相同的对象多次,用户标识其TL

因此,可以说用户id其发现3次在TL我得到:

T 
    TL1 
    TL2 
    TL3 
T 
    TL1 
    TL2 
    TL3 
T 
    TL1 
    TL2 
    TL3 

,我想:

T 
    TL1 
T 
    TL2 
T 
    TL3 

或只有一个:

T 
    TL1 
    TL2 
    TL3 

我猜它可能在Hibernate中,但还没有对其进行管理还。

在此先感谢

写足够

SELECT distinct t FROM Table t join fetch t ....... 
     -----^------ 

HQL ORDER BY clause and DISTINCT clause将有助于进一步。

+0

这很简单,力知道隐含的可能性是可能的。 谢谢 – 2013-04-25 10:03:16

+0

它直到我们知道它没有那么多:)碰巧每个人都乐意帮助你:) – 2013-04-25 10:04:10

为什么你没有再使用DISTINCT

SELECT DISTINCT t FROM Table t join fetch t.list tl WHERE tl.userid=:userid 
AND tl.tableid=t.id 

它会给你造成不重复值

你也可以尝试使用Criteria.DISTINCT_ROOT_ENTITY