2010-09-21 4 views
1

Quelle est la meilleure façon de concevoir une vue d'une application Java/Hibernate pour le scénario suivant:vue de base de données pour plusieurs un à plusieurs relations

Il est l'entité A qui a un à plusieurs relation avec l'entité B, entité C et l'entité D.

Il est nécessaire d'afficher toutes les relations de l'entité A dans une seule table de l'interface utilisateur.

Est-il sensé de créer une vue de base de données et de la mapper avec Hibernate.

ou

ont tous la logique en Java et alimenter un POJO avec les résultats de plusieurs requêtes effectuées via Hibernate?

Dans le premier cas, si des vues sont utilisées, alors une telle vue est-elle possible? J'ai été incapable de trouver des informations sur la création de vues avec une structure telle que l'ID d'entité, l'ID de composant, le type de composant (où l'ID de composant et le type de composant auraient des valeurs d'entités B, C, D).

Est-ce que quelque chose que je fais est fondamentalement faux?

Répondre

0
SELECT a.Id AS AID, b.Id AS BID, c.Id AS CID 
FROM EntityA a 
LEFT JOIN EntityB b ON a.Id = b.aId 
LEFT JOIN EntityC c ON a.Id = b.aId 

Vous pouvez en faire une vue mais il est à peu près la même chose que l'exécution de cette requête à chaque fois à moins que votre base de données peut optimiser d'une certaine façon (avant le calculer, etc.). Je ne suis pas un expert en hibernation mais c'est une requête plutôt simple. Je ne peux pas imaginer de problèmes.

+0

Je suis dans l'impression que OP aime charger toutes les relations d'un EntityA unique. Pas sûr cependant. –

+0

Ouais je n'étais pas vraiment sûr de ça. Techniquement, les identifiants sont tout ce qui est nécessaire pour "montrer toutes les relations de l'entité A". Peu importe, il devrait simplement changer ce qui est sélectionné. * ou quelque chose de plus spécifique. – colithium

Questions connexes