1 votes

JPA Hibernate : Comment empêcher la jointure lors de la récupération ?

Supposons que j'ai les objets suivants (une table par objet) avec ces relations : A -> B -> C -> D

Si je trouveById une instance de A, tous les B, C et D sont renvoyés, ce que je ne veux pas. Est-il possible de forcer Hibernate à ne retourner que A (ou seulement ses propriétés primitives) ?

Je sais que je peux écrire "SELECT a.x, a.y, a.z, ... FROM A" et ensuite mettre manuellement la liste des objets résultants dans A, mais cela est quelque peu opportun car je devrais remplir manuellement toutes les propriétés. J'ai également vérifié tous les Conseils pour les requêtes Hibernate mais rien n'est lié.

Mohsen

2voto

Viktor Klang Points 14826

Sélectionnez a dans A a ?

également, comment avez-vous mappé vos relations ? lazy="proxy" et fetch="join" ?

2voto

Bob Points 1593

Si vous avez un constructeur pour A qui remplit tous les champs sauf ceux que vous ne voulez pas joindre, vous pouvez sélectionner comme ceci :

SELECT NEW A(a.x, a.y, a.z) FROM A a

1voto

bertolami Points 1640

Vous pouvez spécifier fetch="select" et lazy="true" dans votre mapping. Surtout si vos relations -> sont des listes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X