Я хотел бы получить сущность с коллекцией и ее коллекциями, однако мне приходится сталкиваться с некоторыми проблемами, такими как «не может одновременно извлекать несколько пакетов» или пустые наборы результатов, где я знаю, что он должен содержать записи. Все это о диетах, поэтому у меня есть следующие объекты:JPA Entity с коллекцией коллекций
public class Diet extends BaseEntity{
@NotEmpty
@Column(unique = true)
private String name;
@OneToMany(cascade=CascadeType.ALL, mappedBy = "diet")
@LazyCollection(LazyCollectionOption.FALSE)
private List<DietEntry> dietEntry = new ArrayList<>();
@Entity
@Table(name = "diet_entry")
public class DietEntry extends BaseEntity{
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "dietId")
private Diet diet;
@ManyToMany(cascade=CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
private List<Meal> meals = new ArrayList<>();
@ManyToMany(cascade=CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
private List<ProductQuantity> products = new ArrayList<>();
Я хотел бы получить Diet со всеми его DietEntries и все продукты и блюда из DietEntry. Я могу получить Diet легко, но у меня есть проблемы с получением коллекции, поэтому я сделал следующий запрос:
Query query = this.em.createQuery("SELECT distinct(de) FROM DietEntry de join de.products dep join de.meals dem WHERE de.diet = :diet");
query.setParameter("diet", diet);
return query.getResultList();
Однако она возвращает пустой результирующий набор. Как это решить?
См. Предыдущий вопрос/ответ: http://stackoverflow.com/questions/1346181/using-distinct-in-jpa –
Я удалил выделенное ограничение из запроса, но он по-прежнему дает пустой набор результатов. –