Wpis z mikrobloga

Mam problem z cykliczną zależnością referencji w hibernate tzn. przykładowo mamy dwie klasy autor (posiada pole set), z adnotacja manyToMany i przy pobieraniu jakiegos autora wywala blad bo przez metode toString mamy cykliczna zaleznosc. Dalem jsonignore na te pola, ale co mi z tego jak ja chce zwrocic pelen obiekt razem z tymi polami. Jak to zrobic?

amatorski picrel
#java #hibernate #spring #naukaprogramowania
nick230 - Mam problem z cykliczną zależnością referencji w hibernate tzn. przykładowo...

źródło: comment_16723132476Py2lH6WOTAGD1yafCfdLH.jpg

Pobierz
  • 19
@nick230: Hibernate jest generalnie najgorszym możliwym wyborem jeżeli chodzi o orm. Na końcu i tak będziesz pisał native query. Lepiej naucz się Jooq albo spring jdbc template. Pewnie jeszcze do wykonywania zapytań nie używasz stateless session (standard w springu) bez którego hibernate połyka pamięć bez żadnych ograniczeń i monitoruje stan encji kompletnie bez sensu.
@nick230: W toString powinny być tylko i wyłącznie pola należące do tej encji, bez dociągania zależności z innych. Pchasz się w N+1.... Nie panujesz nad wykonywanym zapytaniem. Włącz wypisywanie zapytań hibernate w konfiguracji springa.
@1349: @63274682374: To jesli uzytkownik wejdzie sobie w serwisie/sklepie na jakas ksiazke, czyli pojdzie request do controllera, to jak mu dostarczyc informacji odnosnie autora jak wywale to info z toString, robi sie dto czy tam responsemodel i pobiera sie osobno autorow?
@63274682374: @1349: Właściwie teraz zauwazyłem, że metoda toString w ogóle nie jest brana pod uwagę. Jak napisałem "dupa" w toString to i tak wypisało wszystkie informacje z obiektu, czemu tak się dzieje?
Jak napisałem "dupa" w toString to i tak wypisało wszystkie informacje z obiektu, czemu tak się dzieje?


@nick230: Jeśli zmiany w kodzie nie wpływają na działanie kodu to oznacza, że zmiany zrobiłeś w innym kodzie niż uruchamiasz/sprawdzasz ( ͡° ͜ʖ ͡°)
@nick230: W przypadku gdy mamy inny model w bazie i inny w Restach, to polecam separację warstw, oczywiście trzeba coś pomapować pomiędzy warstwami, ale potem życie w obu warstwach robi się prostsze i w miarę niezależne od siebie ( ͡ ͜ʖ ͡)