2016-11-11 2 views
0
class A{ 
    String name; 
    List<B> b; 
    boolean ra; 
} 

class B{ 
    boolean rb; 
    int a; 
     } 

Ich möchte untergeordnete Kriterien hinzufügen, dass alles von Liste von b kommen wird, deren Wert von booleschen rb in Klasse b falsch ist.Wie man Hibernate Child Kriterien Einschränkungen auf Java-Liste anwenden?

Criteria criteria = sessionFactory.getCurrentSession().createCriteria(A.class,"a"); 
    criteria.add(Restrictions.like("a.name","hi", MatchMode.ANYWHERE); 

wie fügen Sie dieses untergeordnete Kriterium hinzu, das einige Elemente aus der Liste von b erhält, die den Wert von rb enthalten, ist falsch?

Antwort

0

können Sie Aliasnamen verwenden, wie in der Hibernate Dokumentation beschrieben

List cats = sess.createCriteria(Cat.class) 
    .createAlias("kittens", "kt") 
    .createAlias("mate", "mt") 
    .add(Restrictions.eqProperty("kt.name", "mt.name")) 
    .list(); 

Also in Ihrem Fall, dass Sie Alias ​​für'b' erstellen möchten.

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

Verwandte Themen