class A{
String name;
List<B> b;
boolean ra;
}
class B{
boolean rb;
int a;
}
我想添加子条件,b类的所有内容都将来自b类中boolean rb的值为false。
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(A.class,"a");
criteria.add(Restrictions.like("a.name","hi", MatchMode.ANYWHERE);
如何添加这个子条件,从b列表中得到一些包含rb值的元素是假的?
答案 0 :(得分:0)
您可以使用Hibernate文档中描述的别名
List cats = sess.createCriteria(Cat.class)
.createAlias("kittens", "kt")
.createAlias("mate", "mt")
.add( Restrictions.eqProperty("kt.name", "mt.name") )
.list();
所以在你的情况下你想为'b'创建别名。
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(A.class,"a");
criteria.createAlias('b', 'b');
criteria.add(Restrictions.eq('b.rb', false));
...
https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html