Czesc, chcialabym przelozyc na Springa zapytanie ktore sklada sie z joinow. Jest tak: mam 3 tabele: A, B i C.
A:
id, name, bId (klucz do tabeli B)
B:
id, name cId (klucz do tabeli C)
C:
id, name
Piszac w sqlu, gdybym chciala wyciagnac : A.name, A.bId, B.name, B.cId, C.name
to mniej wiecej napisalabym tak (moge miec byka gdzies, bo pisze z glowy):
SELECT A.name, A.bId, B.name, B.cId, C.name
FROM C
LEFT JOIN B ON B.cId = C.id
LEFT JOIN A ON A.bId = B.id
i spoko, w 1 zapytaniu mam co chce. A teraz mam Springa i JdbcDaoSupport. Potworzylam modele, rowMappery i przechodze do pisania DAO. I teraz sie
zastanawiam jak to zrobic? W sumie najfajniej byloby napisac :
getJdbcTemplate().query("SELECT A.name, A.bId, B.name, B.cId, C.name
FROM C
LEFT JOIN B ON B.cId = C.id
LEFT JOIN A ON A.bId = B.id")
tylko wtedy jaki RowMapper? co ma zwracac? Napisalam 3 osobne modele i rowMappery dla tabel A,B,C. A moze powinnam stworzyc model i rowMapper ABC (ktory
bedzie zawieral pola: A.name, A.bId, B.name, B.cId, C.name) ? I wtedy w DAO bym napisala sobie tego query-select'a i w 1 zapytniu mialabym co chce.
Tylko czy tak jest poprawnie? Wydaje mi sie ze powinnam uzyc 3 modeli skoro sa 3 tabele. Ale wtedy bede miec 3 zapytania (bo wpierw z A bede szukac
name oraz A.bId, potem z B bede szukac name oraz B.cId a potem z C bede szukac C)
Nie wiem - ktore podejscie jest wlasciwe? a moze jeszcze inne?
bede wdzieczna za wszystkie rady,
pzdr,
misty