У меня есть две сущности JPA:
@Entity
public class ClientEntity {
...
@OneToMany(fetch = LAZY)
private List<OrderEntity> orders;
}
@Entity
public class OrderEntity {
...
@ManyToOne
private ClientEntity client;
}
Я делаю LEFT OUTER JOIN, используя API спецификации JPA:
public static Specification<ClientEntity> allClientsOrders() {
return (root, query, cb) -> {
Join<ClientEntity, TestOrderEntity> join = root.join("orders", JoinType.LEFT);
return cb.and();
};
}
Теперь мне нужно получить стандартные результаты JOIN: еслиУ клиента есть 3 заказа в БД, я хочу, чтобы он возвращался 3 раза с другим заказом каждый раз.Однако он возвращает мне клиента 3 раза, но каждый раз, когда у клиента есть все 3 заказа.
Как я вижу в журналах, Java правильно отправляет первый запрос SQL, но затем отправляет другие запросы, чтобы заполнить клиентазаказы как обычно.
Как я могу предотвратить это и получить результаты как один клиент - одна пара заказов?