Bir SQL deyiminde yürütmek istediğim bir Hazırda bulunma kriteri çağrısı var. Yapmaya çalıştığım şey, çocukları bir dış birleştirme kullanarak yüklerken, bir değer aralığında (SQL IN yan tümcesi) bir Özelliği olan Çocukları olan Ana'nın örneklerini seçmektir. İşte ben bugüne kadar ne var: Burada Çocuklarda kısıtlamalarla hazırda bekleyen ölçütler
Criteria c = session.createCriteria(Parent.class);
c.createAlias("children", "c", CriteriaSpecification.LEFT_JOIN)
.setFetchMode("c", FetchMode.JOIN)
.add(Restrictions.in("c.property", properties));
c.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
return c.list();
bazı örnek veriler var:
Parent
Parent ID
A
B
C
Children
Child ID Parent ID property
... A 0
... A 2
... A 7
... B 1
... C 1
... C 2
... C 3
Ne yapmak isteyen çocuklardan biri eşit bir özelliğe sahipse ebeveynler ve TÜM çocuklarını dönmek olduğunu benim parametre (ler) bağlamak. Özelliklerin {2} içeren bir dizi olduğunu varsayalım. Bu durumda, çağrı A ve C ebeveynlerini iade edecek, ancak çocuk koleksiyonları sadece 2. unsuru içerecektir. Veli [Çocuklar]:
A [2] & C [2]
İstediğim geçerli:
A [0, 2, 7] & C [1, 2 3]
Bu bir hata değilse, bozuk bir semantik gibi görünüyor. A.getChildren() veya C.getChildren() 'ı nasıl çağırdığımı ve 1 kaydı iade etmenin nasıl doğru olacağını düşünmüyorum - bu bir projeksiyon değil. Yani Ben varsayılan getirme seçeneğini kullanmak için sorguyu güçlendirmek, eğer albiet sorgularının bir sayıda, uygun çocuk koleksiyonları döndürür:
c.createAlias("children", "c").add(
Restrictions.in("c.property", properties));
Bu bir hata mı? Değilse, istediğim sonuca nasıl ulaşabilirim?
Doğru, SQL kolay bir parçasıdır. Aradığım kriter kriterleri. ;) Ayrıca, unutmayın ki bu, çocuk varlıkları doldurmak için bir dış katılım gerektirecektir. –
Ebeveyn ve tembelce çocukları yükleme 2. sorgu nedir? – dfb
Evet, her bir üst kayıt için döndürülen bir çocuk sorgusu yürütülüyor, bu da kaçınmaya çalışıyorum. Bu aslında bir kusur olabilir gibi görünüyor, ama herkes bir geçici çözüm varsa merak ediyorum: https://hibernate.onjira.com/browse/HHH-3524 –