Cześć
Pisałem ostatnio pewną aplikację (cos takiego robiłem pierwszy raz, więc zawiera baardzo bardzo duzo złych praktyk ).
No więc składa się ona z backendu w Springu, który mi tam wystawia jakies "RESTowe" API (z restem ma niewiele wspólnego, no ale controllery zwracaja mi JSONy). Druga część aplikacji to frontend w javaFX. Pomyślałem sobie że fajnie byłoby aby dane między aplikacja kliencka, a serwerem były przesyłane za posrednictwem obiektów na wzór DTO. Wydzieliłem więc jeszcze jeden moduł aplikacji, z którego korzysta zarówno backend jak i frontend.
Tylko teraz w czym problem.... Widziałem tutaj na forum dyskusję, że @Entity z JPA/Hibernate , to tak naprawdę prawie DTO. Ja jednak chciałbym je zmapować na swoje DTO (nawet jesli to będzie na chwilę obecną praktycznie 1:1) i używać tych samych szablonów w obu aplikacjach (fx, spring). Dołączyłem do mapowania framework mapstruct.
Problem pojawia się jesli chcę mapować klasę, która jest w relacji wiele do jednego z inną klasą. Mapstruct wtedy popada w nieskończoną rekurencję, dostaję stackoverflow i po marzeniach.
Poniżej link do modelu bazy danych
https://www.vertabelo.com/blog/technical-articles/a-database-model-for-a-movie-theater-reservation-system
Problem dotyczy mapowania klasy Auditorium, która ma składową Seat. Seat zaś ma składową Auditorium.
Jak to obejść? Czy powinienem zmodyfikować swoje DTOski, tak aby nie miały cykli?