tag:blogger.com,1999:blog-20941681.post6519892691347679983..comments2024-02-13T18:09:44.121+01:00Comments on Jacek Laskowski scala jawnie: Boimy się nieznanego, regularny wypoczynek z pływaniem i silnie typizowane zapytania w JPA2Anonymoushttp://www.blogger.com/profile/09734540973692423017noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-20941681.post-12052946565311783812010-02-18T14:18:35.738+01:002010-02-18T14:18:35.738+01:00@Wujek
Kiedyś przechodziłem okres zauroczenia Hibe...@Wujek<br />Kiedyś przechodziłem okres zauroczenia Hibernate criteria API (z racji właśnie ich typesafe), ale po jakimś czasie doszedłem do tego samego wniosku co i Ty (i inni również): przy bardziej złozonych zapytanich, które w HQL (które typesafe nie jest niestety) da się zapisać w miarę zwięźle, w Criteria zwięźle to już nie wygląda – jest niestety nieczytelne.<br />Też się zgadzam z Tobą, Wujek, że Criteria pokazują swój pazur w dynamicznie (runtime) tworzonych zapytaniach – wspomniany przykład z kryteriami wyszukiwania na stronce jest trafnym przykładem.<br />Jak pisałem, lubie ORMy, Hibernate / JPA w szczególności, ale nie widzę (niestety!) możliwości, aby te ORMy zrobić bardziej typesafe bez … zmiany języka. Mam wrażenie, że bez wspomnianych literałów (prostszy mechanizm refleksji) i bez np. przeciążania operatorów, raczeni nie będzie możliwe uproszczenia Cirteria API, takiego jakiego znamy z Hibernate / JPA 2.<br />Lubi ę przyglądać się konstrukcjom z języka Scala. Nie napisałem w nim ani linijki kodu, ale język ten mi się podoba ;) Mam wrażenie, że dopiero tak elastyczny i zwięzły język jak skala, mógłby dokonać kolejnego skoku w kierunku uproszczenia i przejrzystości typesafe zapytań w ORM’ch.Adam Wozniakhttps://www.blogger.com/profile/13169773193006103382noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-58924787329481391752010-02-18T11:37:14.506+01:002010-02-18T11:37:14.506+01:00Cześć Jacku
Popieram jak najbardziej Twoje reflek...Cześć Jacku<br /><br />Popieram jak najbardziej Twoje refleksje nad kondycją psycho-fizyczną :) Od jakiegoś czasu przestawiłem się na poranne wstawanie i minimum 7 godzin snu. To czego mi jeszcze brakowało, a o czym wspomniałeś to pływanie.<br />Oczywiście początkowo wydawało mi się, że teraz muszę się pożegnać z wieloma aktywnościami, które sprawiały mi dużo przyjemności. Jednak z perspektywy kilku ostatnich tygodni widzę, że to wszystko tkwi raczej w podejmowaniu właściwych wyborów. A i tak zawsze będzie wiele spraw, których nie jesteśmy w stanie zrobić tu i teraz.<br /><br />Dobry wypoczynek to świerza energia, świerze spojrzenie na to wszystko co nas spotyka każdego dnia :)Anonymoushttps://www.blogger.com/profile/11943198269348467495noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-45298171004541614962010-02-15T16:42:27.919+01:002010-02-15T16:42:27.919+01:00Zgadzam sie z przedmowca, literaly dla pol i metod...Zgadzam sie z przedmowca, literaly dla pol i metod bylyby swietne w tym i wielu innych przypadkach. A samo typesafe criteria api nie iwem po co jest, jedyne co mi przychodzi do glowy to dynamiczne tworzenie zapytan na stronce, gdzie user moze sobie dodawac kryteria wyszukiwania - zamiast babrania sie stringami mamy takie cos. Jakos tego nie lubie.wujek.srujekhttps://www.blogger.com/profile/13448304891913633393noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-85137244251244654002010-02-15T11:51:21.594+01:002010-02-15T11:51:21.594+01:00Cześć Jacek
Mimo, że jestem fanem rozwiązań ORM (J...Cześć Jacek<br />Mimo, że jestem fanem rozwiązań ORM (JPA/Hibernate w szczególności), to dopiero Twój post zmobilizował mnie, aby się na chwilę pochylić nad Criteria API z JPA 2 ;)<br /><br />Przeczytałem sobie fragment książki (via Google books), która czytasz (JPA 2) i faktycznie, z tego co widzę, od JPA 2 będzie dostępna funkcjonalność:<br />get(Ksiazka_.tytul)<br /><br />... czyli typesafe na poziomie języka (tutaj Java).<br /><br />Ale ja uparcie twierdzę, że ten mechanizm jest przekombinowany. Jak sam z resztą wspominasz, ten trik wymaga od dostawcy JPA 2 mechanizmu generowania klasy kanonicznej. Przykład takie klasy jest na stronie 268 (klasa Emplyee_).<br />I według mnie, cała ta klasa kanoniczna (i smutna konieczność ich generowania przez framework JPA 2), jest tylko odpowiedzią, na brak uproszczonego mechanizmu refleksji na poziomie języka Java.<br /><br />Gdyby tylko Sun (khm, Oracle) zechaciał zaimplementować ten Java Feature Request:<br />http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5043025<br /><br />... to mam wrażenie, że za pośrednictwem takiego mechanizm refleksji, można byłoby osiągnąć triki i mechanizm z Criteria API w JPA 2 bez konieczności używania jednak trochę pokracznych, nadmiarowych i napuszonych konstrukcji z dodatkowymi klasami kanonicznymi.<br /><br />Coż, jeśli kogos przekonałem, ze opisany w Feature Ewquest, uproszczony mechanizm refleksji jest interesujący, to zachęcam zatem na oddanie swojego głosu na ten Feature Request :)<br />Ja taki głos oczywiście już dawno oddałem :)Adam Wozniakhttps://www.blogger.com/profile/13169773193006103382noreply@blogger.com