# JPA2 Criteria API & native  SQLRestrictions



## sebastianb (21. Oktober 2010)

Hallo zusammen,

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


```
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


----------



## Thomas Darimont (22. Oktober 2010)

Hallo,

so vielleicht?

```
...
		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


----------



## sebastianb (22. Oktober 2010)

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


----------



## sebastianb (25. Oktober 2010)

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


----------

