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

How can dependent related objects be processed when… - sobes.tech