Java Kriterien builder Abfrage nicht null oder leer ist

Ich versuche zu überprüfen, ob eine Spalte in der db ist keine leere Zeichenfolge ist oder nicht null ist, aber ich kann nicht herausfinden wie Sie es tun, mit Kriterien-generator Abfragen, um die tatsächlichen Objekte zurück. Dieses sql funktioniert:

sampleName is not null and sampleName != ''

Aber wenn ich versuche, es zu tun, mit Kriterien builder wie diesem:

//dies ist eine private Methode filterBySampleNotEmpty

cb.notEqual(root.get("sampleName"), "");

genannt, indem dieser in einer anderen Methode

CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
CriteriaQuery<Sample> query = criteriaBuilder.createQuery(Sample.class);
Root model = query.from(Sample.class);
List<Predicate> predicates = new ArrayList<>();
predicates.add(filterBySampleNotEmpty(model, criteriaBuilder));
query.select(model).where(predicates.toArray(new Predicate[]{}));

Gibt es die ganze Liste noch.

  • Können Sie zeigen ein bisschen mehr von deinem code? Wie haben Sie gebaut/konfiguriert cb und root?
  • Meine schlecht, ich fügte hinzu, mehr.
  • In der 'where' - Klausel, können Sie versuchen predicates.toArray(new Predicate[predicates.size()] und sehen, ob das funktioniert?
InformationsquelleAutor Crystal | 2016-12-05
Schreibe einen Kommentar