Dobrý den,

mně to přijde spíš jako problém pro analytické funkce.
Něco jako:
select min(detail_id) keep (dense_rank first order by detail_time desc) from 
detail
Ano, syntaxe je pro ANSI sqlistu hrozná, ale je to silný nástroj.

Každopádně myslím, že otázkou "jak udělám v Criteria API select z poddotazu" už 
řešitele zbytečně svazujete. Někdy je lepší se netrápit hlavolamem, jak nacpat 
nějaký nestandardní dotaz do Criteria API nebo HQL, když tu je x způsobů, jak 
to udělat v SQL a jsou snad i čitelnější, typicky např.
session.createSQLQuery("select {m.*} from master {m} 
...").addEntity("m",Master.class).list()

A i kdybyste chtěl zůstat u Criteria API, pořád by nestačilo 
Restrictions.sqlRestriction (viz rada mého předchůdce s exists)?

Tomáš Záluský


______________________________________________________________
> Od: "Rastislav Siekel" <sie...@prosoft.sk>
> Komu: Java <konference@java.cz>
> Datum: 27.06.2013 15:03
> Předmět: Hibernate SELECT bez FROM tabuľky
>
>Zdravím vospolok,
>
>
>
>chcel by som sa spýtať, či niekto neriešil nasledujúci problém:
>
>
>
>V Oracle mám tabuľky master a detail. Mám master a chcem k nemu nájsť posledný 
>detail, čo spravím v SQL takto:
>
>
>
>... AND detail_id =
>
>(
>
>SELECT * FROM
>
>(
>
>SELECT detail_id
>
>FROM detail
>
>ORDER BY detail_time DESC
>
>)
>
>WHERE rownum = 1
>
>)
>
>...
>
>
>
>
>
>Tu som narazil na problém, že Hibernate pomocou Criteria API asi nevie spraviť 
>"SELECT FROM (...) WHERE ...".
>
>Aj DetachedCriteria, aj Criteria si vyžadujú Entitu (DTO), nad ktorou 
>pripravia SQL príkaz. Je nejaká možnosť ako toto obísť?
>
>
>
>Vďaka,
>
>Rastislav "Bedo" Siekel
>
>
>
>
>
>
>
>Ing. Rastislav Siekel
>
>Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
>
>E-mail : <sie...@prosoft.sk>
>
>Tel : 041/562 54 91
>
>Fax : 041/562 54 97
>
>Mobil : 0905 34 00 20
>
>
>
>
>
>
>
>

Odpovedet emailem