Hibernate 具有集合集合的JPA实体

Hibernate 具有集合集合的JPA实体,hibernate,jpa,Hibernate,Jpa,我希望获得一个包含集合及其集合的实体,但是我面临一些问题,如“无法同时获取多个包”或空结果集,我知道它应该包含条目。整个事情都是关于饮食的,所以我有以下几点: public class Diet extends BaseEntity{ @NotEmpty @Column(unique = true) private String name; @OneToMany(cascade=CascadeType.ALL, mappedBy = "diet") @LazyCollection(LazyCol

我希望获得一个包含集合及其集合的实体,但是我面临一些问题,如“无法同时获取多个包”或空结果集,我知道它应该包含条目。整个事情都是关于饮食的,所以我有以下几点:

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<>();

但是,它返回空的结果集。如何解决此问题?

正确答案:使用集合而不是列表。

请参阅前面的问题/答案:我已从查询中删除了distinct约束,但它仍然提供空结果集。
    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();