[英]Hibernate CriteriaQuery check for null join
我正在转换为休眠5.2.4并使用CriteriaQuery。 在测试文件的空联接时有一个小问题。 这是我之前所做的工作。
@Entity
public class MyClass {
....
@ManyToOne(..)
public MyDetail getMyDetail() {
return myDetail;
}
}
Criteria criteria = session.createCriteria(MyClass.class);
criteria.createAlias("myDetail", "md");
criteria.add(Restrictions.isNotNull("myDetail"));
我一直在像这样检查,有时无法正常工作:
andPredicate = builder.and(andPredicate, builder.isNotNull(
root.get(MyClass_.myDetail)));
有正确的方法吗? 我试图创建联接并测试是否为空,但这也行不通:
Join<MyClass, MyDetail> myJoin = root.join(MyClass_.myDetail);
andPredicate = builder.and(andPredicate, myJoin.isNotNull());
谢谢。
解决了,我需要一个匹配
criteria.createAlias("myDetail", "md");
即:
root.join(MyClass_.myDetail);
由于查询对关系没有任何选择,因此我没有进行联接。
似乎我也不必检查联接是否为空。 只做加入就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.