Zatim to mam resene na urovni databaze:
CREATE OR REPLACE VIEW prehled AS
SELECT tabulka_karet .karticka_id,
sum(tabulka_karet.a) AS a,
sum( tabulka_karet.b) AS b
FROM katalog_karta
GROUP BY tabulka_karet.karticka_id;
Potom v Hibernate mapuji tridu Prehled na tento pohled (objekt karticka je pripojen z tabulky karticek pomoci @many-to-one pres karticka_id) a DAO metodou ziskavam serazeny seznam:
return getHibernateTemplate().find("from Prehled prehled order by prehled.karticka.nazev");
Rad bych se toho mapovani na pohled zbavil a resil souhrnou metodou vracejici Prehledy implementovanou primo v DAO objektu pro ziskavani karet.
S pozdravem,
Petr Gola
On 16/06/06, Lukas Barton <[EMAIL PROTECTED]> wrote:
Petr Gola napsal(a):pri (orderBy == null) dostanu ocekavany seznam Prehledu seskupenych dle id Karticek. Ale pri pokusu o serazeni pomoci order by dostanu chybove hlaseni, ze polozka dle ktere chci seznam utridit se musi objevit v group by. Asi by to chtelo pro to trideni jeste cele obalit do jednoho selektu, ale to se mi nejak nedari. Zatim jsem to vyresil v Hibermate jako mapovani objektu Prehled na view vytvorene v databazi. Ale moc se mi to nelibi, radsi bych to z toho dostal HQL dotazem.Nic prece nebrani pole z order by doplnit automaticky i do group by.
Ted totiz "zneuzivate" lazy incializaci tridy Karta - tj. selectuje se jen pole karticka.id.
Kdyz si zapnete zobrazovani SQL prikazu uvidite celkem 3 dotaz. Dva budou na natazeni objektu typu Karta z databaze.
Lukas Barton