JPA2 Criteria API & native SQLRestrictions

sebastianb

Erfahrenes Mitglied
Hallo zusammen,

weiß jemand zufällig, ob solch ein Konstrukt auch mit dem JPA2 Criteria API möglich ist?

Code:
Criteria crit = session.createCriteria(Foo.class);
crit.add(Restrictions.sqlRestriction("name like '%Bar%'"));

In der Klasse CriteriaBuilder habe ich jedenfalls keine passende Methode gefunden, um native SQLRestrictions hinzuzufügen.

Viele Dank schonmal

Sebastian
 
Hallo,

so vielleicht?
Java:
...
		CriteriaBuilder crit = entityManager.getCriteriaBuilder();
		CriteriaQuery<Member> qry = crit.createQuery(Member.class);
		Root<Member> from = qry.from(Member.class);
		qry.select(from).where(crit.like(from.get("memberName").as(String.class), "%Bar%"));
		List<Member> resultList = entityManager.createQuery(qry).getResultList();
...

Gruß Tom
 
Hi Thomas,

vielen Dank für Deine Antwort. Ich suche jedoch eine Möglichkeit native SQL-Restrictions an einen Criteria-Ausruck zu hängen - ähnlich wie bei Hibernate über Restrictions.sqlRestriction. Das Problem ist nämlich, dass einige der Queries oft aus Performancegründen mit Datenbankspezifischen Ausdrücken angepasst werden müssen und das nur über natives SQL geht.

Viele Grüße

Sebastian
 
So nach langer Recherche bin ich nun zu dem Schluss gekommen, dass so ein Konstrukt momentan mit dem JPA2 API momentan nicht möglich ist.

Gruß

Sebastian
 
Zurück