首先,映射是错误的。在父类中,您是说该关联是由映射的
child.parent,而在您说该关联是使用名为的连接列进行映射之后
id_child。下定决心
它是由
child.parent属性映射的,应该删除
@JoinColumn。或者它是由JoinColumn映射的,您应该
@PrimaryKeyJoinColumn在子级中删除,并
mappedBy="child"在Child实体中使用。
现在,要使查询正常工作,无论映射是什么,您都应该简单地进行内部联接:
Criteria criteria = session.createCriteria(Parent.class);criteria.createAlias("child"); // inner join由于联接是内部联接,因此它将仅选择具有非空子代的父母。



