繁体   English   中英

Hibernate CriteriaQuery检查空联接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM