structure de l'objet est comme ceRécupérer une structure graphique dans Hibernate
- facture
- client
- Date de
- Nombre
- a beaucoup productlines (produit, quantité, prix)
- a de nombreux ServiceLines (service, quantité, prix)
- a beaucoup PaymentOptions (PaymentType (chèque, réception, etc.), Date, Somme)
Si je dois récupérer une liste des factures pour une période donnée avec Hibernate est très facile à faire avec paresseux chargement sans écrire de code appelez simplement get ... MAIS il y a l'inconvénient de trop d'appels DB, donc dans un environnement multi-utilisateur cette solution n'est pas correcte.
Avec JDBC simple, j'ai résolu cela en utilisant 3 requêtes: 3 jointures entre Invoice et ProductLines, Invoice et ServiceLines et Invoice and Payment Options. Après cela, j'ai construit l'objet dans la mémoire. Même chose peut être fait avec Hibernate Je sais MAIS ma question est qu'il n'existe pas de graphique de charge ou alors je peux passer une liste de factures et en nombre minimum d'appels (optimal) pour récupérer les données?
Oui c'est résoudre le problème dans une requête.Le seul inconvénient est le produit cartésien de toutes ces tables peut être énorme non? – Cris
En effet. Cependant, avec cette méthode, vous pouvez toujours choisir quelles associations chercher immédiatement et lesquelles charger paresseusement.Ensuite, vous pouvez utiliser la taille de lot, comme Simon l'a suggéré, pour accélérer les récupérations pour les fainéants. –
+1 pour l'exemple, que j'ai ajouté à ma réponse. –