采用以下示例实体:
Entity Child {
long id;
String name;
long parentKey;
}
Entity Parent {
long id;
String desc;
}
有没有办法使用Hibernate Criteria查询:
select * from Child c, Parent p
where c.parentKey = p.id and c.name = "whatever" and p.desc = "whatever"
我们主要关注的是如何跨两个仅相关的实体加入Criteria 通过长键。
假设我们无法直接在我们的孩子中引用Parent。
答案 0 :(得分:1)
嗯,不确定你指的是什么Hibernate版本,但在JPA 2.0中这样的事情是可能的:
String query = "SELECT c FROM Child c, Parent p WHERE c.parentId = p.id";
List<Child> children = em.createQuery(query, Child.class).getResultList();
通过这种方式,您可以根据自定义条件明确地进行JOIN,而不是让JPA管理它,尽管这样做是完全合法的。