Toto som asi presne nepochopil. Čo sa dá denormalizovať na master-detail väzbe, keď hľadám posledný detail?

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 28. 6. 2013 9:24, Lukas wrote:
Denormalizujte schema a mate po problemu.

  Lukas


Sent from Samsung Mobile



-------- Original message --------
From: Rastislav Siekel <sie...@prosoft.sk>
Date:
To: Java <konference@java.cz>
Subject: Re: Hibernate SELECT bez FROM tabuľky


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>
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>
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

 


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