Aktywne Wpisy

pumpspray +520
Zdjęcia, które moja głowa traktuje jako błąd w symulacji
#matrix
#matrix
źródło: temp_file682579874090896828
Pobierz
bury256 +199
Na komisach same igły :)
#motoryzacja
#motoryzacja
źródło: temp_file570651546936781814
Pobierz




W skrócie, mam rekurencję w kodzie, toString klasy Animals nie może wyświetlić toString Tags i tak w kółko. Jakieś sugestie ?
Komentarz usunięty przez autora
Komentarz usunięty przez autora
Komentarz usunięty przez autora
źródło: comment_IgH0x4zK6UsPRhHrzUXmEAORL5m4OqL1.jpg
Pobierz3 wyjścia.
Jeśli wystawiałbyś restowe API to możesz użyć adnotacji @JsonManagedReference i @JsonBackReference, błąd nie wystąpi.
Możesz stworzyć poprawny model i używać DTO.
Możesz stworzyć relację unidirectional, w tym momencie ci
masz zwierzę, które ma Tag. I co ma ten tag? To samo zwierze. I co ma to zwierze? Ten tag.
Tam nie ma krasnoludków, które ci się domyślą co ty chcesz zrobić, będzie mapować dopóki nie spotka końca albo nie zapełni stacka
Nie mam restowego API więc opcja1 odpada.
2. Poczytam, spróbuje ewentualnie.
3. Tylko w relacji
adnotacja @Data zapewnia AllArgsContructor więc nie musisz jej dawać
@Builder raczej się nie używa jak zapewniasz konstruktor dla pól, jak chcesz miec builder to zostawiłbym tylko @NoArgsConstructor i dał Getter&Setter
Nie musisz pisać nazw kolumn i nazw tablic jeśli są takie same jak nazwy pól, ta adnotacja nadpisuje nazwę domyślną. Czyli nadpisujesz "contact" nazwą "contact"
Jak używasz kolekcji, to inicjalizuj je sobie defaultowo, czyli private Set animals = new HashSet<>();
Nie używaj EAGER, nadpisz to jako LAZY, i nie używaj repozytoriów w kontrolerach, tylko stwórz sobie serwis, adnotacją @Service. Tam wykonuj wszystkie operacje I/O na bazie. Poczytaj o transakcjach, do tego masz @Transactional. (bodaj 5.8 w dokumentacji Data JPA) Wtedy nie wyrzuci ci infinite recursive, ponieważ gdy otworzysz transakcję i pobierzesz Animal, to w tym momencie on nie ma Tag. To istnieje jako