我想使用 Hibernate 的标准 api 来制定一个连接两个实体的特定查询。假设我有两个实体,Pet 和 Owner,一个拥有许多宠物的所有者,但至关重要的是,该关联没有映射到 Java 注释或 xml 中。
使用 hql,我可以通过在查询中指定联接来选择拥有名为“fido”的宠物的所有者(而不是将一组宠物添加到所有者类中)。
可以使用 hibernate 条件来完成相同的操作吗?如果有怎么办?
谢谢, J
最佳答案
这确实可以通过标准来实现:
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));
更新:这实际上执行子查询而不是连接,但它允许您在两个没有定义 hibernate 关系的实体上使用 Criteria。
关于java - hibernate 标准 : Joining table without a mapped association,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/720502/