varsayılan ResultTransformer) ROOT_ENTITY
olacaktır. Biz Bölümüne bir ManyToMany ilişkide Öğrenci varsa
sorgu
Session session = (Session) getEntityManager().getDelegate();
Criteria crit = session.createCriteria(Student.class)
.createAlias('departments', 'department');
Bu sorgu çiftleri dönecektir ... Bu gibi görünebilir. Ama ResultTransformer
... hazırda sonuçları marshalls zaman
crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
Artık sonuçlar farklı olacaktır ayarlayın. (Ya ben unmarshalls demek?)
Bir List<Student>
olarak sorgu dönmek için Hazırda ama List<Object[]>
Basitçe sonra
crit.setResultTransformer(CriteriaSpecification.PROJECTION)
Dokümandan ROOT_ALIAS için bu terimi görebiliyorum: Kriterleri sorgusunun "kök" öğesine başvuran diğer ad. Bu durumda "kök" terimi ne anlama geliyor? Kökün bu durumda ne ifade ettiğini anlayamıyorum. Lütfen açıkla. – user182944
"root", Kriterler örneğinizi oluştururken kullandığınız sınıfın kısaltmasıdır. Benim örneğimde kök Öğrenci. Sonuç olarak, crit.list() öğesine bir Öğrenci nesnelerinin listesi olarak bir çağrı gönderilir. PROJECT olarak bir ResultTransformation istemediğiniz sürece, bu durumda bir Object nesnesi listesi olacaktır. (Ayrıca, Restriction'ı kaldırmak için orijinal örneğimi düzenledim, böylece sorgu çiftleri döndürecektir.) – carbontax