2016-06-10 13 views
0

Ich versuche, einen Wert aus einer Spalte in meinen Ergebnissen auszuschließen.Wert mit Hibernate ausschließen

Ich habe versucht mit conjunction() und and() Operatoren aber nicht erreichen, was ich will.

dies ist meine letzte attemp zu filtern:

public List<Factura> getAll() { 
    Criteria criteria = getSession().createCriteria(Factura.class); 
    Criterion criterion = Restrictions.conjunction().add(Restrictions.eq("estado", "INICIADO")) 
                .add(Restrictions.eq("estado", "CONFIRMADO")); 
    criteria.addOrder(Order.desc("idFactura")); 
    criteria.add(criterion); 
    List<Factura> list = criteria.list(); 
    return list; 
} 

in meiner Tabelle in der Spalte estado ich habe 3 mögliche Werte. INICIADO, CONFIRMADO, RESERVADO Ich möchte von meinen Ergebnissen ausschließen RESERVADO, aber ich weiß nicht, was ich falsch mache, nur die vollständige Liste ohne Filterung.

+0

Werfen Sie einen Blick auf http://www.objectdb.com/java/jpa/query/criteria –

Antwort

1

Ok ich finde eine Lösung nach dem Versuch viele Dinge und es ist sehr einfach zu verstehen.

public List<Factura> getAll() { 
    Criteria criteria = getSession().createCriteria(Factura.class); 
    criteria.add(
      Restrictions.not(
        Restrictions.in("estado", new String[]{"RESERVADO"}))); 
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 
    List<Factura> list = criteria.list(); 
    return list; 
} 

mit diesem kann ich jeden Wert ausschließen, den ich will.

Vielen Dank für das Lesen und Entschuldigung für Ihre Zeit verschwenden.

1

Verwenden Restrictions.ne Methode

public List<Factura> getAll() { 
    Criteria criteria = getSession().createCriteria(Factura.class); 
    criteria.add(Restrictions.ne("estado", "RESERVADO")); 
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 
    return criteria.list(); 
} 
Verwandte Themen