Nun, ich habe wirklich einfache Methode, die einige Codes zurückgeben sollte ... und es tut, aber die Reihenfolge von funktioniert nicht.Reihenfolge von zeigt nicht im Protokoll
private List<Code> get(String qualifier, ZonedDateTime validAt) {
return em.createQuery(
"select c\n"
+ " from Code c\n"
+ " where c.qualifier = :qualifier\n"
+ " and c.validFrom <= :validAt)\n"
+ " and c.validUntil > :validAt)\n"
+ " order by c.sequence, c.code\n",
com.service.code.impl.model.Code.class)
.setParameter("qualifier", qualifier)
.setParameter("validAt", validAt)
.getResultList().stream()
.map(converter::convert)
.collect(Collectors.toList());
}
Wenn ich die Methode aufrufen log ich die Aussage, und das ist, wie es aussieht:
07:59:44,158 INFO [stdout] (default task-15) Hibernate:
07:59:44,158 INFO [stdout] (default task-15) select
07:59:44,158 INFO [stdout] (default task-15) code0_.id as id1_0_,
07:59:44,159 INFO [stdout] (default task-15) code0_.changed_at as changed_at2_0_,
07:59:44,159 INFO [stdout] (default task-15) code0_.changed_by as changed_by3_0_,
07:59:44,159 INFO [stdout] (default task-15) code0_.created_at as created_at4_0_,
07:59:44,159 INFO [stdout] (default task-15) code0_.version as version5_0_,
07:59:44,159 INFO [stdout] (default task-15) code0_.code as code6_0_,
07:59:44,163 INFO [stdout] (default task-15) code0_.description as description7_0_,
07:59:44,163 INFO [stdout] (default task-15) code0_.qualifier as qualifier8_0_,
07:59:44,163 INFO [stdout] (default task-15) code0_.sequence as sequence9_0_,
07:59:44,163 INFO [stdout] (default task-15) code0_.valid_from as valid_from10_0_,
07:59:44,163 INFO [stdout] (default task-15) code0_.valid_until as valid_until11_0_
07:59:44,163 INFO [stdout] (default task-15) from
07:59:44,163 INFO [stdout] (default task-15) code code0_
07:59:44,163 INFO [stdout] (default task-15) where
07:59:44,163 INFO [stdout] (default task-15) code0_.qualifier=?
07:59:44,164 INFO [stdout] (default task-15) and code0_.valid_from<=?
Wie Sie die Reihenfolge sehen kann fehlt. Wie kann das möglich sein?
Ich würde sagen, dass Hibernate die auf eigene tut Sortierung (das heißt in Java, nicht in DB). –
Auch die Zeile "+" und c.validUntil> validAt) \ n "' fehlen. Sind Sie sicher, dass dies der ausgeführte Code ist? Entfernen Sie auch '\ n' von den Zeilen. Es ist nicht notwendig – Jens
Es gibt zwei schließende Klammern in Ihrem Statment ohne öffnende Klammern – Jens