Hallo,
Ich bau mir für eine Abfrage ein Criteria zusammen.
Die Funktion sieht ungefähr so aus:
[highlight=Java]public List<UnmodifiedText> getTexts(int from, int max, boolean onlyNewTexts, Order[] orders ){
Criteria crit = getSession().createCriteria(UnmodifiedText.class);
if (onlyNewTexts){
crit.add(Restrictions.or(Restrictions.eq("edited", false), Restrictions.isNull("edited")));
}
for (Order o : orders){
crit.addOrder(o);
}
crit.setFirstResult(from)
.setMaxResults(max);
return crit.list();
}[/highlight]
In der Datenbank sind jetzt in meinem Beispiel 2 Datensätze, die gefunden werden müssen. Er findet diese auch. Allerdings steht einer der beiden dann 10mal in meiner Liste.
Wenn ich stattdessen einen normalen Query baue, ist das nicht der Fall.
Der sieht ungefähr so aus:
[highlight=Java]return getSession().createQuery("from UnmodifiedText u where u.edited=false or u.edited is null order by u.lastUpdate desc, u.id desc")
// return getSession().createQuery("from UnmodifiedText")
.setFirstResult(from)
.setMaxResults(max)
.list();[/highlight]
Kann mir jemand sagen, woran das liegen könnte?
Danke, GG
Ich bau mir für eine Abfrage ein Criteria zusammen.
Die Funktion sieht ungefähr so aus:
[highlight=Java]public List<UnmodifiedText> getTexts(int from, int max, boolean onlyNewTexts, Order[] orders ){
Criteria crit = getSession().createCriteria(UnmodifiedText.class);
if (onlyNewTexts){
crit.add(Restrictions.or(Restrictions.eq("edited", false), Restrictions.isNull("edited")));
}
for (Order o : orders){
crit.addOrder(o);
}
crit.setFirstResult(from)
.setMaxResults(max);
return crit.list();
}[/highlight]
In der Datenbank sind jetzt in meinem Beispiel 2 Datensätze, die gefunden werden müssen. Er findet diese auch. Allerdings steht einer der beiden dann 10mal in meiner Liste.
Wenn ich stattdessen einen normalen Query baue, ist das nicht der Fall.
Der sieht ungefähr so aus:
[highlight=Java]return getSession().createQuery("from UnmodifiedText u where u.edited=false or u.edited is null order by u.lastUpdate desc, u.id desc")
// return getSession().createQuery("from UnmodifiedText")
.setFirstResult(from)
.setMaxResults(max)
.list();[/highlight]
Kann mir jemand sagen, woran das liegen könnte?
Danke, GG