Zdravim,
pouzivam klasicke JPA pouze s TopLinkem.

Dost me ovsem mrzi, ze nemohu pouzit nejake Criteria API, jako je v hibernate. 
Ten zpusob, ktery nabizi Hibernate se mi dost libi, ovsem nechci Hibernate jako 
takove momentalne implementovat.

Radeji bych pouzil neco podobneho pro JPA + TopLink. Ted otazka. Existuje jiz 
nekde neco podobneho, co by (pro prechodnou dobu, nez treba prejdu na 
Hibernate, nebo se JPA standard rozsiri i na tuto oblast) se dalo vyuzit? Jde o 
to, abych znovu nevymyslel kolo.

Osobne jsem nad tim premyslel, nepripada mi to az tak slozite, pokud bych 
vytvoril vlastni Criteria API, ktere by parsovalo bud vstupni SQL query v 
podobe Stringu nebo podle Entita.class, kde bych cely OQL dokazal podle classy 
vygenerovat.
Kdyz bych vyuzil jen obycejneho parsovani, kde bych pridal moznosti na <>, =, 
IN, NOT IN, BETWEEN, OR, atd.
Priklad:
MyCriteriaAPI c = new MyCriteriaAPI("SELECT u FROM Uzivatele u ");
c = c.add("u.login", Restrictions.IN(String[] {"lojza", "pepik", "franta"}));
....
return entityManager.createQuery(c.createOQLString()).getResultList();

Zpusob jak nejake takoveto Criteria API napsat neni asi slozite a dokonce i ja 
vim jak bych na to asi sel :) Spise mi jde o to, jestli uz neco takoveho, 
jednoduchouckeho neexistuje.

Ono totiz porad pridavat do String query nejakou dalsi where podminku zpusobem 
pricitani k retezci, atd. je dost nesikovne a pracne, kdyz to mam delat 
pokazde, kdyz delam dotaz, ktery vraci zaznamy podle filtrace.

Odpovedet emailem