Hibernate criteriaQuery createAlias等效

Hibernate criteriaQuery createAlias等效,hibernate,jpa,createcriteria,Hibernate,Jpa,Createcriteria,我正在考虑升级我的hibernate以使用JPA criteriaQuery:-(并且需要找到一种在JPA中实现别名的方法,例如: @Entity public class MyClass { .... @ManyToOne(..) public MyDetail getMyDetail() { return myDetail; } } Criteria criteria = session.createCriteria(MyClass.class); .... criteria.cre

我正在考虑升级我的hibernate以使用JPA criteriaQuery:-(并且需要找到一种在JPA中实现别名的方法,例如:

@Entity
public class MyClass {
....
@ManyToOne(..)
public MyDetail getMyDetail() { 
return myDetail;  
}
}

Criteria criteria = session.createCriteria(MyClass.class);
....
criteria.createAlias("myDetail", "md");
criteria.add(Restrictions.eq("md.active", true));
我已经阅读了hibernate文档,但它们似乎只介绍了一些琐碎的示例,并且忽略了hibernate特定的功能


干杯Greg

您可以在entityRoot上的JPA CriteriaQuery中创建别名

Root<A> entityRoot = criteriaQuery.from(A);
entityRoot.join("b", JoinType.LEFT).alias("b");
Root entityRoot=criteriaQuery.from(A);
entityRoot.join(“b”,JoinType.LEFT).别名(“b”);

您可以在EntityRot上的JPA CriteriaQuery中创建别名

Root<A> entityRoot = criteriaQuery.from(A);
entityRoot.join("b", JoinType.LEFT).alias("b");
Root entityRoot=criteriaQuery.from(A);
entityRoot.join(“b”,JoinType.LEFT).别名(“b”);

任何基本的JPA文档都会告诉你这一点。连接在MyDetail类的@ManyToOne中,也许我需要为查询创建另一个连接?如果你需要引用候选对象以外的内容,那么是的,你需要连接…@ManyToOne样式的隐式连接将不受支持。我使用createAlias加载了一次又一次的查询:-(任何基本的JPA文档都会告诉你这一点。连接在MyDetail类的@ManyToOne中,也许我需要为查询创建另一个连接?如果你需要引用候选对象以外的内容,那么是的,你需要连接…@ManyToOne样式的隐式连接将不受支持。我使用createAlias加载了一次又一次的查询:-(这对很多人都没有帮助。
别名
返回一个奇怪的
选择
,不清楚如何使用。你应该提供一个更具体的例子,说明如何实际使用
选择
。这对很多人都没有帮助。
别名
返回一个奇怪的
选择
,不清楚如何使用。您应该提供一个更具体的示例,说明如何实际使用
选择。