2016-03-29 13 views
0

Ich versuche, Kriterien anhand eines Beispiels zu erstellen. Aber ich bekomme die gleichen Ergebnisse für die verschiedenen Beispielobjekte.Hibernate-Kriterien von Examle

Author author = new Author(); 
author.setId(3L); 
News news = new News(); 
news.setAuthor(author); 

List<News> newsList = getSession().createCriteria(News.class) 
      .add(Example.create(news)) 
      .list(); 

Wenn ich die ID ändern, dann bekomme ich die gleiche News-Liste. Ich versuchte, als nächstes zu tun:

//... 
.add(Example.create(news.getAuthor()) 

Aber es nicht zu arbeiten. Ich weiß, dass ich zum Beispiel Einschränkungen oder HQL verwenden kann, aber ich würde es gerne so machen. Wie benutze ich das Exempel richtig?

+0

Haben Sie versucht, den Autor mit 'session.get (3L)' anstatt einen neuen zu erstellen? –

+0

@StefanSteinegger Nein, habe ich nicht. Ich bevorzuge es, weniger Datenbankabfragen zu machen. – Nox

+0

Also einen Proxy erstellen ... ('session.load()' denke ich). –

Antwort

1

Von the documentation

Version Eigenschaften, Identifikatoren und Verbände werden ignoriert. Standardmäßig werden nullwertige Eigenschaften ausgeschlossen.