我正在尝试找出如何使用Hibernate标准来获取特定集合的子元素,当我检索父元素时。 我已经创建了以下示例实体:
父类
性别班级
Hibernate Criteria(Hibernate标准查询)
这个条件给了我一个父母列表,其中有男孩(“M”),并返回每个父母的所有子女。如何获取仅具有父母.children集合中男孩子的男孩父母列表?
@Entity
public class Parent {
@Id
@Column(name="PARENT_ID")
private long parentId;
@Column(name="NAME")
private String name;
@OneToMany(mappedBy="parent")
private Set<Child> children
}
子类
@Entity
public class Child {
@Id
@Column(name="CHILD_ID")
private long childId
@ManyToOne
@JoinColumn(name="PARENT_ID")
private Parent parent;
@ManyToOne
@JoinColumn(name="GENDER_ID")
private Gender gender;
}
性别班级
@Entity
public class Gender {
@Id
@Column(name="GENDER_ID")
private long genderId;
@Column(name="GENDER_IND")
private String genderInd;
}
Hibernate Criteria(Hibernate标准查询)
getSession()
.createCriteria(Parent.class)
.createAlias("children", "c")
.createAlias("c.gender", "g")
.add(Restrictions.eq("g.genderInd", "M"))
.list()
这个条件给了我一个父母列表,其中有男孩(“M”),并返回每个父母的所有子女。如何获取仅具有父母.children集合中男孩子的男孩父母列表?