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