Junior — Middle
Ποιοι τύποι στρατηγικών αργής και άγριας φόρτωσης δεδομένων στο JPA είναι γνωστοί;
sobes.tech AI
Απάντηση από AI
Στο JPA, υπάρχουν δύο βασικές στρατηγικές φόρτωσης σχετικών δεδομένων:
-
Επιμελής φόρτωση (EAGER): οι σχετικές οντότητες φορτώνονται αμέσως μαζί με την κύρια οντότητα. Αυτό είναι βολικό όταν τα σχετικά δεδομένα χρειάζονται άμεσα, αλλά μπορεί να οδηγήσει σε υπερβολικά ερωτήματα και μείωση της απόδοσης.
-
Υπομονετική φόρτωση (LAZY): οι σχετικές οντότητες φορτώνονται μόνο κατά την πρώτη πρόσβαση. Αυτό εξοικονομεί πόρους, αλλά απαιτεί να είναι ανοιχτή η συνεδρία EntityManager κατά την πρόσβαση στα δεδομένα, διαφορετικά μπορεί να προκύψει σφάλμα LazyInitializationException.
Παράδειγμα ανάρτησης σε JPA:
@OneToMany(fetch = FetchType.LAZY)
private List<Order> orders;
@OneToOne(fetch = FetchType.EAGER)
private Profile profile;