*Pak to asi stačí spojit s tím co posílal kolega předemnou, asi nějak takto: SELECT xyz FROM master WHERE exists (SELECT 1 FROM detail WHERE detail.master_id = **master.id** AND detail.sloupce <> konec **AND **detail.detail_id in (**select min(detail_id) keep (dense_rank first order by detail_time desc) from detail WHERE **detail.master_id = master.id)) **, nebo s tím vaším sub-selectem. Je to asi spíš o SQL (HQL).
Snad napoví: http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/#querycriteria-detachedqueries nebo v HQL http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/#queryhql-subqueries *Petr 2013/6/28 Rastislav Siekel <sie...@prosoft.sk> > Vďaka za názor, ale príkaz > > > *SELECT xyz FROM master WHERE exists (SELECT 1 FROM detail WHERE > detail.master_id = **master.id** AND detail.sloupce <> konec)* > > vyberie všetky záznamy Master, pretože ku každému existuje nejaký detail, > ktorý hovorí, že oprava nie je ukončená - prvý detail. Mňa zaujíma atribút > ukončenie len na poslednom detaile. > > > Rastislav "Bedo" Siekel > > > > ------------------------------ > Ing. Rastislav Siekel > Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia > E-mail : <sie...@prosoft.sk> <sie...@prosoft.sk> > Tel : 041/562 54 91 > Fax : 041/562 54 97 > Mobil : 0905 34 00 20 > > > > On 27. 6. 2013 18:44, Petr Franta wrote: > > Myslím si, že by to mělo jít vyřešit pomocí podmínky "exists" nebo "not > exists": > > SELECT xyz FROM master WHERE exists (SELECT 1 FROM detail WHERE > detail.master_id = master.id AND detail.sloupce <> konec) > > Nebo něco podobného. > > Petr > > 2013/6/27 Rastislav Siekel <sie...@prosoft.sk> > >> Možno som to nenapísal úplne jasne - skúsim inak >> >> Mám záznamy o oprave - hlavičky, a ku každej môže byť 1 - N detailov >> (priebeh opravy, na poslednej je aj prípadne ukončenie). >> Vytváram SELECT pre zoznam opráv, ktoré ešte nemajú koniec, t.j. s >> podmienkou, či posledný detail ešte nemá zadaný koniec (tie predošlé ho >> určite nemajú zadaný, takže obyčajný JOIN by mi vybral všetky opravy, lebo >> ku každému master existuje určite aspoň jeden detail, ktorý vyhovuje >> podmienke). >> >> posledný detail zistím v SQL tak ako som uviedol nižšie. >> >> Rastislav "Bedo" Siekel >> >> >> P.S. >> >> >> *>From detail d where d.master=:master order by d.order* >> Tento príkaz vypíše pre 1 master všetky detaily, čo určite nie je to, čo >> hľadám. >> >> >> >> ------------------------------ >> Ing. Rastislav Siekel >> Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia >> E-mail : <sie...@prosoft.sk> <sie...@prosoft.sk> >> Tel : 041/562 54 91 >> Fax : 041/562 54 97 >> Mobil : 0905 34 00 20 >> >> >> >> On 27. 6. 2013 16:11, Martin Beránek wrote: >> >> Není moc jasné zadání, ale hql >> >> From detail d where d.master=:master order by d.order >> >> Podle mě dělá co požadujete >> >> Martin >> Dne 27.6.2013 15:36 "Rastislav Siekel" <sie...@prosoft.sk> napsal(a): >> >>> Otočiť to na vyhľadávanie "detail JOIN master" by v tomto prípade >>> nešlo. Výsledok má byť zoznam mastrov (filtrovaný na ďalšie podmienky) s >>> tým, že sú zadané podmienky aj na posledný detail. >>> >>> Principiálne hľadám, či je možné v Hibernate spraviť SELECT * FROM( >>> SELECT...) >>> >>> >>> Rastislav "Bedo" Siekel >>> >>> >>> ------------------------------ >>> Ing. Rastislav Siekel >>> Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia >>> E-mail : <sie...@prosoft.sk> <sie...@prosoft.sk> >>> Tel : 041/562 54 91 >>> Fax : 041/562 54 97 >>> Mobil : 0905 34 00 20 >>> >>> >>> >>> On 27. 6. 2013 15:11, ŠVARC Jiří wrote: >>> >>> Nevím jestli jsem dobře porozuměl, ale nešlo by to realizovat >>> vyhledáním v seznamu detailů s kritériem odkazu na mastera, nastavením >>> řazení a query.setMaxResults(1)? >>> >>> >>> >>> *ing. Jiří Švarc** >>> *Programmer Analyst >>> >>> >>> >>> *Asseco Central Europe, a.s.** >>> *Solutions for Demanding Business >>> >>> Budějovická 778/3a, 140 00 Praha 4 >>> Czech Republic >>> Mobile: +420 737 944 536 >>> jiri.sv...@asseco-ce.com >>> www.asseco-ce.com >>> >>> >>> >>> *From:* konference-boun...@java.cz >>> [mailto:konference-boun...@java.cz<konference-boun...@java.cz>] >>> *On Behalf Of *Rastislav Siekel >>> *Sent:* Thursday, June 27, 2013 2:57 PM >>> *To:* Java >>> *Subject:* 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> <sie...@prosoft.sk> >>> Tel : 041/562 54 91 >>> Fax : 041/562 54 97 >>> Mobil : 0905 34 00 20 >>> >>> >>> >>> >> > >