bonjour
j'ai une application qui gère 2 métiers différents,chacun des métiers possèdent des produits avec les mêmes informations et le 2eme métiers possèdes des informations en plus. Du coup en java nous avons simplement fait un
class Produit{
}
class Produit2 extend Produit{
}
le problème c'est que lorsque j'effectue une requête sur produit, hibernate me rajoute systématiquement une jointure sur Produit2, et cette jointure me coute extrêmement cher car cette jointure peut me retourner des milliers d'enregistrement dont je n'ai pas besoin et en java le fait de ne pas mettre la jointure et qu hibernate me la rajoute et bien je ne peux pas rajouter de contrainte pour filtrer les resultats.
Et même si je rajoute la jointure en ajoutant des filtres pour dégager les résultats de cette jointure, postgresql va quand même prendre du temps car il va devoir traiter un volume important de donnée pour enfin ne pas les prendre en compte.
Du coup je voulais savoir s il existait un moyen de dire à hibernate, lorsque l'ont construit la requête avec createQuery(...);, d'ajouter un paramètre ou quelque chose qui me permettrait d'exclure une jointure en particulier ou ne pas ajouter les jointures sur les extends? car si je prends la requête SQL généré et que j'enlève la jointure sur produit2 ma requête passe des plusieurs secondes à quelque milliseconde.
merci de votre aide, j'espère avoir été clair.
Partager