Sobes.tech
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;