Keďže sa nikto neozval, odpoviem si asi sám:

Ešte existuje možnosť použiť:
List results = session.createFilter( aaa.getBbb(), "WHERE... ORDER BY ..." ).list();
ale takisto sa nevyhnem Stringovej časti príkazu. To už je jednoduchšie napísať to celé v HQL.

Suma sumárum, HQL je najkomplexnejšia možnosť ako pristupovať k objektom. Criteria API je len jeho podmnožina a aj keď nemám rád Stringové vytváranie príkazov, jednoducho sa bez neho nedá zaobísť. Je to škoda :-(

Rastislav "Bedo" Siekel


Ing. Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
E-mail : <[EMAIL PROTECTED]>
Tel : 041/562 54 91
Fax : 041/562 54 97
Mobil : 0905 34 00 20


Rastislav Siekel wrote:
Zdravím vospolok,

nevie mi niekto pomôcť, ako sa v Hibernate dá napísať napr. "SELECT bbb FROM aaa AS aaa JOIN aaa.bbbb AS bbb" (čo funguje správne), ale pomocou Criteria API? Criteria štandardne berú do select listu ten objekt, ktorý je vo FROM klauzule.

Pozeral som Projections a možno by to šlo cez property(), ale vymenovať všetky stĺpce sa mi nezdá dobré, pretože tie môžu v čase pribúdať a kontrolovať  po zmene DB schémy každý takýto príkaz...
A priateľ Google mlčí...

Rastislav "Bedo" Siekel

P.S. Viem, že je možné prepísať mapovanie tak, aby som mohol väzbiť opačne "SELECT bbb FROM bbb AS bbb JOIN bbb.aaa AS aaa", ale logicky mi to nesedí. Moje konkrétne bbb (významné dáta) nemusí nič vedieť o aaa (protokol o spracovaní).


Ing. Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
E-mail : <[EMAIL PROTECTED]>
Tel : 041/562 54 91
Fax : 041/562 54 97
Mobil : 0905 34 00 20

Odpovedet emailem