O stringów w postgresie porównywaniu

Pracując na jednym z projektów, trafiliśmy na „ciekawe inaczej” wymaganie. Chodziło o to, by dodać wyszukiwanie po adresie email. Prosta sprawa, ale nie do końca. Gmail a wielkość znaków W adresie e-mail co do zasady ważna jest wielkość znaków. No, chyba że jesteś gmailem, to wtedy nie. Gmail jest usługą, która próbuje być cwana. Po […]

Data classes jako encje JPA

Gdy opisałem data classes to praktycznie od razu pojawiło się pytanie, a co z ich użyciem jako encje? Spróbujmy zatem. Wygenerowałem projekt spring boot, bo mam już wtedy skonfigurowane JPA w sposób podobny do tego, jaki występuje w wielu projektach. Encja – to proste Kotlin wspiera adnotacje, a zatem stworzenie encji jest bardzo proste. Wystarczy […]

Active Record z Google Guice i JPA cześć III

Wczoraj pracując nad kodem stwierdziłem, że należy przeprowadzić drobną refaktoryzację. W jej wyniku powstała klasa JPAToolkit, która zajmuje się komunikacją z bazą danych. Dzięki temu wyeliminowałem zależność od EntityManager w klasach encji. W kolejnych krokach zapewne uogólnię i tą zależność do interfejsu i tym samym nie będzie istotne czy implementacja opera się o JPA czy […]

Active Record z Google Guice i JPA cześć II

W pierwszej części pokazałem jak powinna wyglądać standardowa encja oraz konfiguracja modułu. W tej części będzie trochę teorii co powinna dostarczać klasa SelfManagedEntity. Active Record Wzorzec projektowy Active Record ma swoje korzenie w kartotekowych bazach danych. Dokładnie w ich implementacjach z lat 70tych kiedy ktoś wymyślił, że pracując na rekordzie warto mieć metody typu save, […]

Active Record z Google Guice i JPA cześć I

Ostatnie kilka wpisów było poświęcone zabawie z Guice, Assisted Injection i JPA. Nie może to się skończyć inaczej niż jakimś widowiskowym podsumowaniem 😉 Na początek Elementów API Guice nie można teoretycznie wstrzykiwać… nie dotyczy to injectora. Warto o tym pamiętać. Tak samo jak o tym, że injector najlepiej wstrzykiwać jako pole statyczne. Wymagania co do […]

Samozarządzające się encje – persist vs. merge

Chcąc zaimplementować prostą wersję wzorca ActiveRecord należy uzbroić się w cierpliwość. Szczególnie jeżeli chce się to zrobić z wykorzystaniem JSR-330 i Guice. Jednym z problemów przed jakimi staje osoba tworząca takie rozwiązanie jest decyzja czy encje powinny być zarządzane bardziej przez Guice czy bardziej przez JPA. Kluczowym elementem, który trzeba zrozumieć by dokonać wyboru jest […]

O identyfikacji encji i lenistwie deweloperów…

Pewien czas temu natknąłem się na arcyciekawy wpis na blogu Michała Gruca. Sam wpis traktuje o tym, które metody z klasy Object należy nadpisywać i jak to robić w przypadku obiektów reprezentujących encje biznesowe. Jeszcze ciekawiej zapowiadała się dyskusja w komentarzach. Chcąc nawiązać do rozpoczętego wątku zaczętego przez Marcina Stachniuka czy używanie ID w metodach […]

Testowanie DAO w JPA 2.0 za pomocą DbUnit część 2

Malowanie zakończone sukcesem. Zatem czas na druga część problemu testowania klas DAO z użyciem DBUnit w środowisku z JPA 2.0. Bogowie, co za tytuł… ja powinienem z tego tytuł magisterki zrobić. Swoją drogą farba „Willow Creek 4” ma taki ładny kolor… jak przechodzące zestawy testów. Do rzeczy. W poprzedniej części postawiłem warunki jakie powinien spełniać […]

Vaadin jako klient webservice I: Przygotowanie projektu

Witam w pierwszej części przewodnika „Vaadin jako klient webservice”. W tej części zajmiemy się przygotowaniem projektu. Jest to ważny etap ponieważ pozwoli on nam na zrozumienie jak działa aplikacja oraz przy okazji poznamy pewne sztuczki związane z optymalizacją aplikacji Vaadin za pomocą Springa. Cały proces przygotowania można podzielić na kilka etapów. Przygotowanie pom.xml Dodatkowa konfiguracja […]

JPA w aplikacji SE

Na początek link do dyskusji, która mnie sprowokowała do chwycenia za klawiaturę: http://forum.4programmers.net/viewtopic.php?p=562953 Teraz link do artykułu i, tradycyjnie już, spis treści: 1 Wstęp 2 Podstawy 3 Program 4 Tworzenie projektu 5 Implementacja 6 Podsumowanie Jako, że sam temat z forum jest ciekawy (szczególnie wypowiedzi osób niezarejestrowanych) w kolejnym poście chwila refleksji na temat JPA […]