Criteria API für natives SQL

-AbeAdapti-

Mitglied
Hi,
ich suche nach einer API die SQL ähnlich abstrahiert wie die Hibernate Criteria API.

Code:
e.g. List<Worker> workers= (List<Worker>) session.
createCriteria(Worker.class)
  .add(
     Restrictions.or(
        Restrictions.and(
           Restrictions.like("lastName", "Kin%"),
           Restrictions.eq("firstName", "Garvin")),
        Restrictions.gt("salary", 2000F))
  ) ....

In konkreten Fall gibt es mehrere MSSQL Tabellen, die per tiefverschachtelten TSQL abgefragt werden (subselects, top, unions, tsql funktionen....). Die manuelle string manipulation ist hier sehr aufwendig und reines Hibernate kommt wegen der Performance nicht in Frage (z.B. wegen einsatz von datenbank cursorn).

Es sollte das vereinfachte zusammenbauen von SQL Statements im vordergrund stehen (und nicht das mapping allein, wenn überhaupt)
Code:
( SELECT .. FROM (SUBSELECT) JOIN ... WHERE ...GROUP BY ... ORDER BY ) UNION ( ....)

Grüße Abe
 
Du kannst afaik die Hibernate API auch so verwenden, dass kein dauerndes ORM stattfindet.

Ein Performanceproblem mit Hibernate ist mir noch nicht begegnet. Und ganz offen gesagt, händisch mit den Cursorn einer DB herumzunudeln, ist nicht ganz ungefährlich. Ein fehlendes close() auf den Statementhandles kann beispielsweise im Dauerbetrieb bei Oracle zu Deadlocks auf der DB führen (sog. artificial Deadlocks).

Vielleicht verrätst Du uns ja mal Dein Mengengerüst und Deine Performanceanforderungen ;-)

Grüße
gore
 
Zurück