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
RE: Hibernate SELECT bez FROM tabuľky
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.commailto:jiri.sv...@asseco-ce.com www.asseco-ce.comhttp://www.asseco-ce.com From: konference-boun...@java.cz [mailto: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 mailto:sie...@prosoft.sk Tel : 041/562 54 91 Fax : 041/562 54 97 Mobil : 0905 34 00 20
Re: Hibernate SELECT bez FROM tabuľky
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 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] 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 Tel : 041/562 54 91 Fax : 041/562 54 97 Mobil : 0905 34 00 20
Re: Hibernate SELECT bez FROM tabuľky
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 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 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] 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
Re: Hibernate SELECT bez FROM tabuľky
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.czkonference-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