Json problem z serlizacją listy

0

Witam,
Mam dwie klasy Osoba, Języki w relacji wiele do wielu.
W Klasie Osoba jest coś takiego:
//@JsonIgnore
@ManyToMany
private Set<Languages> groups = new HashSet<>();

Jeśli dam JsonIgnore to nie dostaję żadnego błędu i wszystko ok, ale ogólnie jeśli pobieram przez rest api dane o osobie to też bym chciał mieć w tym informację jakimi językami się posługuję. Czy jest jakiś na to sposób oprócz @JsonIgnore?

at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:709) ~[jackson-databind-2.8.4.jar:2.8.4]
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) ~[jackson-databind-2.8.4.jar:2.8.4]
0

Czy w languages masz relacje zwrotna do osoby . poza tym daj wiecej wyjatku najlepiej cały

0

Tutaj link do błędów, bo przy tak długich forum się wiesza.
java.lang.StackOverflowError: null
at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_121]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[na:1.8.0_121]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_121]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) ~[na:1.8.0_121]
at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_121]
at java.net.URLClassLoader$1.run(URLClassLoader.java:368) ~[na:1.8.0_121]
at java.net.URLClassLoader$1.run(URLClassLoader.java:362) ~[na:1.8.0_121]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_121]
at java.net.URLClassLoader.findClass(URLClassLoader.java:361) ~[na:1.8.0_121]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
http://wklej.org/id/3045067/

Osoba:
@JsonIgnore
@ManyToMany
private Set<Jezyk> jezyki = new HashSet<>();

Język:
@ManyToMany(mappedBy = "jezyki")
private Set<Osoba> osoby = new HashSet<>();

Wcześniej miałem mappedBy po drugiej stronie, ale wtedy jak zapisywałem Usera do bazy z ustawioną listą to relacja się nie zapisywała (tzn. nie było w tabeli łączącej odpowiednich wpisów. Teraz się wszystko zapisuje ok.

Mam przygotowany formularz do dawania osoby, w nim się wyświetlają również wcześniej zapisane języki już w bazie. Przy dodawaniu nowej osoby, ładuję najpierw listę języków z bazy. Teraz po stronie Javy dostaję obiekt użytkownika z jego polami i idki języków, w serwisie odpowiednio odszukuję te języki z bazy i dodaje do listy języków osoby. I chodzi o to, że załaduje stronę i nawet nie musze klikać zapisz i już dostaję ten błąd. Z JsonIgnore wszystko działa, tak jak powinno.

0

Zapomniałem reszta pól to proste pola typu String, żadnych list.

0

@JsonManagedReference
@JsonBackReference

Likwidują błąd, ale teraz przy próbie zapisu dostaję odpowiedź 415.

0

Sorki, ale tak się kończy wypróżnianie się modelem bazy danych na front

1 użytkowników online, w tym zalogowanych: 0, gości: 1