2012-11-01 62 views
-1

我搜索了整個論壇;幾乎所有的答案都來了,但沒有幫助。 我在我的DAO中有下面的查詢,但它不起作用,我不明白爲什麼?HQL DISTINCT不起作用

這裏是我的完整方法:

public List<RwTac> findAll(){ 
     String sql = "select distinct v from RwTac v " + 
        "order by v.vendor" ; 
     Query query = sessionFactory.getCurrentSession().createQuery(sql); 
     return query.list(); 
    } 

謝謝。

+0

究竟有RwTac表稱爲V A柱? – case1352

+0

否;查詢通常可以正常工作,並在這裏爲我提供了一個名爲「v」的供應商,但它們不是唯一的... – user1790066

+4

您是否在實體中實施了'equals'和'hashCode'? – SJuan76

回答

0

我不確切知道你想要的結果。

在你的HQL選擇

"select distinct v from RwTac v order by v.vendor" 

你會得到其在至少一列不同的所有行 - 在大多數情況下,這將是該表中的所有行(除非你的表沒有一個唯一的鑰匙,它有完整的雙打)。

如果你想擁有的供應商名單,沒有供應商列表中的兩次,然後你需要這個選擇

"select distinct v.vendor from RwTac v order by v.vendor"