Performance: Fetch types (LAZY vs EAGER)
HIGH IMPACT
This affects how and when related data is loaded from the database, impacting page load speed and responsiveness.
class User {
@OneToMany(fetch = FetchType.LAZY)
Set<Order> orders;
}
// Orders load only when accessed explicitlyclass User {
@OneToMany(fetch = FetchType.EAGER)
Set<Order> orders;
}
// Fetching User loads all Orders immediately| Pattern | DB Queries | Memory Usage | Initial Load Time | Verdict |
|---|---|---|---|---|
| EAGER Fetch | Loads all related data immediately | High due to all data in memory | Slower initial load | [X] Bad |
| LAZY Fetch | Loads related data on demand | Lower memory footprint | Faster initial load | [OK] Good |