2009-05-27 15 views

cevap

13
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 

daha esnek bir çözüm olabilir da https://forum.hibernate.org/viewtopic.php?t=941669

+0

(örn Criteria.DISTINCT_ROOT_ENTITY kullanmak yerine X'ten SELECT DISTINCT (xyz). Lütfen, Criteria.DISTINCT_ROOT_ENTITY öğesinin, büyük sonuç kümeleri için maliyetli olabilecek bellekteki (ve veritabanından değil) nesnelerden benzersiz sonuçları aldığını unutmayın. – Philipp

6

bakınız:

criteria.setProjection(Projections.distinct(Projections.property("property"))); 
+0

Tabii ki "Projections.distinct" – speshak

+0

dedim, güzel benekli. – waxwing

+2

Projection.distinct'i kullanmaktan kaçınmak isteyebilirsiniz çünkü sonuç kümesini yalnızca bir özelliğe indirgemenin kötü niyetli yan etkisi vardır. – user959690

1

sorgu/kriterlere bağlıdır. Eğer criteria.uniqueResult (çağırabilir benzersiz bir kimliği) aksi takdirde çağrı sağlarsanız criteria.setMaxResults (1) ve criteria.uniqueResult çağrı()

Bir yerine bir veritabanı sorgusu kullanılarak farklı sonuçlar elde etmek için düşünmelisiniz
İlgili konular