29 listopada 2007

Testowanie złączeń FETCH JOIN w JPA

Miało być prosto i szybko, bo planowałem to na nie więcej niż 30 minut. Skończyło się na kolejnym artykule i 1,5 dnia poszło w zapomnienie. Na szczęście wiedza pozostała i może się nawet okazać, że znalazłem błąd w OpenJPA w kontekście złączenia INNER JOIN. Na ostateczną ocenę przyjdzie mi jeszcze poczekać, a tym którzy nie mają zamiaru tego robić polecam lekturę mojego artykułu o złączeniach JPA - Testowanie złączeń FETCH JOIN w JPA.

A zaczęło się całkiem niewinnie, kiedy na grupie użytkowników Geronimo Tomasz Mazan (aka Beniamin) zadał pytanie Force to load subobjects in OpenJPA o wymuszenie wczytywania danych relacji w Java Persistence API (JPA). Domyślnie JPA wczytuje pola relacyjne z opóźnieniem, jednakże istnieje kilka możliwości zmiany tego zachowania. Tak się złożyło, że wcześniej badałem temat złączeń (ang. joins), więc krótka odpowiedź, uściślenie i ostatecznie problem został rozwiązany. Jest kilka możliwości zaprezentowania tematu, z czego ja wybrałem sposób praktyczny z kilkoma wspierającymi narzędziami. Będzie OpenJPA, Maven, JUnit 4 i Derby wszystko, aby zestawić środowisko do potwierdzenie działania złączeń w JPA. Miłej lektury!