【发布时间】:2023-04-07 19:28:01
【问题描述】:
我正在尝试创建一对多查询。连接似乎正在工作,因为集合被填充但是当我向集合添加查询时它似乎没有做任何事情
这是一个类:
@OneToMany(fetch=FetchType.LAZY, mappedBy="parent")
public Set<Child> getChildren() {
return this.children;
}
这是另一个
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="PARENT_ID")
public Parent getParent() {
return this.parent;
}
这是不工作的查询
Criteria criteria = session.createCriteria(Parent.class,"p")
.setFetchMode("p.children", FetchMode.JOIN)
.createAlias("p.children", "c")
.add(Restrictions.like("p.name", "%" + nameQuery + "%").ignoreCase())
.add(Restrictions.eq("c.gender", "boy"));
这个查询让我得到了我所有父母的名字和他们所有的孩子,但我只想要男孩,但它也给了我所有的女孩。有人看到我做错了吗?
【问题讨论】:
标签: java mysql hibernate hibernate-criteria