List<Hearing>
, her biri Date
özniteliğine sahip bir sınıfım var Lawsuit
.JPA 2 Kriteri API'sında SELECT DISTINCT + ORDER BY SEÇIN
Ben tarihine göre sipariş edilen tüm Lawsuit
s seçmeniz gerekir onların Hearing
s
Ben ettik Sonuçlara düzleştirmek ayrı kullanmak
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Lawsuit> cq = cb.createQuery(Lawsuit.class);
Root<Lawsuit> root = cq.from(Lawsuit.class);
gibi CriteriaQuery:
cq.select(root).distinct(true);
Ben daha sonra katılBen distinct
kaçınırsanız
orderList.add(cb.asc(hearing.<Date>get("date")));
Her şey gayet iyi çalışıyor, ama bunu kullanırsanız, o şikayetçi değil: Hearing
Join<Lawsuit, Hearing> hearing = root.join("hearings", JoinType.INNER);
ilePredicate
s
predicateList.add(cb.isNotNull(hearing.<Date>get("date")));
ve Order
ler oluşturmak için SELECT:
Caused by: org.postgresql.util.PSQLException: ERROR: for
SELECT DISTINCT
,ORDER BY
expressions must appear in select list
List<Hearing>
zaten Lawsuit
sınıfları erişilebilir döndü, bu yüzden karıştı: nasıl seçim listesine eklemek gerekir?
Well, you-select alt List için ihtiyacım var ve belki sonra tarafından sipariş koyabilirsiniz alt seçimde? Şu anda bakmak için zamanım yok. –
Teşekkür ederim @Nicholas; İç sorguyu kriter api ile nasıl yaparsınız? –
[Bu yanıt] (http://stackoverflow.com/a/35915532/4754790) yardımcı olabilir. –