Ich habe eine Abfrage im Hinterkopf, die Paginierung erfordert und ich möchte es mit Spring JPA erstellen. Ich habe 3 Tabellen, Details, Header und Claim. Ein Kopfdatensatz kann viele (untergeordnete) Detaildatensätze enthalten und verfügt über eine OneToMany-Zuordnung. Ein Anspruch hat keine Beziehung zum Header, aber beide haben dieses Feld claim_num (nicht der Primärschlüssel), das den gleichen Wert hat, obwohl keine formalen Einschränkungen vorliegen. Claim hat auch ein Feld 'lastName', nach dem ich sortieren möchte. In einem Detail Repo Spring JPARespository erstreckt, hatte ich eine Methode mit @Query mit dem folgenden integrierten:JPQL Sortierung nach Eigenschaft auf nicht verwandtem Element aus Repo
@Query("select new MyDTO(d, h, c) from Detail d, Header h
left join Claim c on h.claimNum = c.claimNum")
Page<MyDTO> getSomeDetails(new Page(0, 10, new Sort("claim.lastName")))
Ziel bekommen Seiten von Details und Werten von Kopf- und Anspruch im Ergebnis muß zurückgeführt werden soll eingestellt als Gut. Die Reihenfolge von ist mein derzeitiges Hindernis. Ich bekomme "Anspruch ist keine Eigenschaft des Details". Das macht zwar Sinn, aber Details beziehen sich formal auf Header, aber um zu behaupten, nichts ist abgebildet. Wie kann das generierte SQL die richtige Reihenfolge erhalten, wenn die Seite (Sort()) auf der Detailebene übergeben wird? Danke fürs Lesen und jede Hilfe wird geschätzt. Dies ist ein Spring-Boot, aber Upgrade auf Hibernate-Core 5.1.