J'ai une requête en tête qui nécessite la pagination et je veux le construire avec Spring JPA. J'ai 3 tables, le détail, l'en-tête et la réclamation. Un enregistrement d'en-tête peut contenir plusieurs enregistrements de détail (enfants) et un mappage OneToMany. Une revendication n'a pas de relation avec l'en-tête mais les deux ont ce champ claim_num (pas la clé primaire) qui est la même valeur bien qu'il n'y ait pas de contraintes formelles. La revendication a aussi un champ 'lastName' que j'aimerais trier. Dans une mise en pension de détail extension JPARespository de printemps, j'avais construit une méthode avec @Query avec ce qui suit:JPQL trier par propriété sur une entité non liée de 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")))
Le but est d'obtenir des pages de détails et de valeurs d'en-tête et réclamation doivent être retournés dans le jeu de résultats bien. La commande par est mon empêchement actuel. Je reçois 'revendication n'est pas une propriété de détail'. Cela a du sens, mais les détails se rapportent formellement à l'en-tête, mais pour prétendre que rien n'est mappé. Comment le SQL généré peut-il obtenir l'ordre "correct" lors du passage en Page (Sort()) au niveau du détail? Merci d'avoir lu et toute aide est appréciée. C'est le démarrage de printemps mais mis à jour vers Hibernate-Core 5.1.