我想使用Hibernate的条件api来制定连接两个实体的特定查询。假设我有两个实体,Pet和Owner,拥有者有很多宠物,但是关键是关联没有映射到Java批注或xml中。使用hql,我可以通过在查询中指定联接来选择拥有“ fido”宠物的所有者(而不是将一组宠物添加到owner类)。可以使用休眠条件进行相同的操作吗?如果可以,怎么办?谢谢,J
3 回答
喵喵时光机
TA贡献1846条经验 获得超7个赞
使用条件确实可以做到这一点:
DetachedCriteria ownerCriteria = DetachedCriteria.forClass(Owner.class);
ownerCriteria.setProjection(Property.forName("id"));
ownerCriteria.add(Restrictions.eq("ownername", "bob"));
Criteria criteria = getSession().createCriteria(Pet.class);
criteria.add(Property.forName("ownerId").in(ownerCriteria));
更新:实际上,这将执行子查询而不是联接,但是它允许您在未定义休眠关系的两个实体上使用条件。
添加回答
举报
0/150
提交
取消