Verwenden Sie Reguläre Ausdrücke in JPA CriteriaBuilder

Bin ich mit dem PPV CriteriaBuilder zu wählen Entitäten des Typs MyEntity aus einer MySQL-db wie folgt:

String regExp = "(abc|def)"
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery query = cb.createQuery( MyEntity.class );
root = query.from( MyEntity.class );
predicates = new ArrayList<Predicate>();

predicates.add( cb.like( root.<String>get( "name" ), regExp ) );

So, das Ergebnis der Abfrage enthalten sollte jede Person, wo die name Wert entspricht der angegebene regExp. Aber die Ergebnis-Liste ist immer leer.
Die änderung der regExp zu /(abc|def)/g hat keine Wirkung, weder das hinzufügen der Platzhalter %

Machen, wie der pattern-matching arbeiten?

Alternativ: Wie kann ich native MySQL-REGEXP zusammen mit der CriteriaBuilder?

InformationsquelleAutor jp-jee | 2014-07-28
Schreibe einen Kommentar