Zajmuję się tworzeniem prostych aplikacji internetowych, które eksponują model domeny jako zasoby RESTful. Mam zamiar używać JPA2 (Hibernate) z obsługą SpringMVC REST.Czy istnieje sposób na ujawnienie elementów hibernacji jako zasobów RESTful bez DTO?
Podczas przekierowywania obiektów Hibernuj do XML/JSON, jeśli obiekt jest odłączony, zostanie wygenerowany wyjątek LazyLoadingException dla leniwych skojarzeń potomnych. Jeśli obiekt jest nadal przyłączony do sesji Hibernate, prawie załaduje całą bazę danych.
Próbowałem użyć Dozer CustomFieldMapper, aby określić, czy właściwość jest leniwą kolekcją Hibernate, która nie jest załadowana, a następnie zwraca NULL.
Ale jeśli mamy powiązania dwukierunkowe, Hibernacja chętnie ładuje Wiele-do-Jedna strona i Dozer spróbuje skopiować właściwości, które zakończą się nieskończoną pętlą, powodując błąd StackOverflow.
Jedyną pracą, jaką znam, aby rozwiązać ten problem, jest używanie DTO i kopiowanie wymaganych właściwości tylko do czystych obiektów POJO (DTO) i następnie przekazywanie ich do XML/JSON. Bolesne jest jednak skomplikowane kopiowanie właściwości przez skomplikowany model domeny.
Czy istnieje inny czysty/prostszy sposób na (un) marshall elementów?
Używana kod wspomniany w artykule, działa poprawnie. Ale musi przetestować na różnych typach odwzorowań relacji. Dziękuję Ci. –