Junior — Middle
How can dependent related objects be processed when fetching data from the database?
sobes.tech AI
Answer from AI
When retrieving data from a database with dependent related objects in Java, ORM frameworks such as Hibernate or JPA are often used. The main methods of handling related objects:
-
Eager loading: related objects are loaded immediately along with the main object. This is convenient when related data is definitely needed, but can lead to excessive queries.
-
Lazy loading: related objects are loaded only when accessed. This conserves resources but requires the database session to be open during access.
-
Using JOIN queries: with JPQL or Criteria API, you can write a query that immediately loads related objects via JOIN.
Example with JPA:
@Entity
public class Order {
@Id
private Long id;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "order")
private List<OrderItem> items;
}
// With eager loading
TypedQuery<Order> query = em.createQuery(
"SELECT o FROM Order o JOIN FETCH o.items WHERE o.id = :id", Order.class);
query.setParameter("id", orderId);
Order order = query.getSingleResult();
This approach allows controlling when and which related objects are loaded.