Restowe dodawanie postow, spring

Restowe dodawanie postow, spring
SH
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 5 lat
  • Postów:84
0

Dodalem do projektu(prostego cruda z logowaniem) mozliwosc dodawania tematow oraz postow, w zwyklym controllerze wszystko dziala bez problemu jednak gdy chce np wyswietlic liste tematmow lub konkretny temat RESTowo to niestety wyswietla mi sie spis bledow w konsoli http://wklej.org/id/3419393/ zapetlajace sie oraz w Postmanie w formacie xml takze sie zapetlajace duzo razy http://wklej.org/id/3419396/ a w formacie JSOn Expected 'r' instead of 'i' w tym r i ,,i" to losowe litery, ciagle innne, ma ktos pomysl co moze byc nie tak? uprzejmie prosze o pomoc, moj git: https://github.com/PatrykBrzuchacz/SpringProjekt-master3-master

jarekczek
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Siemianowice Śląskie
  • Postów:500
1
Kopiuj
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) ~[jackson-databind-2.9.5.jar:2.9.5]
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727) ~[jackson-databind-2.9.5.jar:2.9.5]
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:719) ~[jackson-databind-2.9.5.jar:2.9.5]
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) ~[jackson-databind-2.9.5.jar:2.9.5]
	at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:145) ~[jackson-databind-2.9.5.jar:2.9.5]
	at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:107) ~[jackson-databind-2.9.5.jar:2.9.5]```

Widocznie na etapie translacji do jsona program wpada w błędne koło. Na przykład Faktura -> Pozycja -> Faktura -> Pozycja -> ... Musisz przerwać błędne koło, np. adnotacją `@JsonIgnore`.

Przeważnie ignoruję niezarejestrowanych użytkowników.
SH
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 5 lat
  • Postów:84
0

Dziala dziekuje juz rozumiem dlaczego nie dzialalo !!

SH
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 5 lat
  • Postów:84
0

a czy jest mozliwosc zrobienia tego w ten sposob posiadajac klasy User, Topic, Post zrobic tak by przy wyswietlaniu listy tematow wyswietlaly sie bez postow a przy wyswietlaniu konkretnego tematu to juz z postami?? gdy @JsonIgnore ustawilem tylko w klasach User to w czasie wyswietlania tematu wyswietlaja sie rowniez posty, gdy probowalem w Topic ustawic JsonIgnore na Posscie to przy wyswietlaniu listy tematow dziala dobrze ale przy wyswietlaniu konkretnego tematu nie wyswietla postow, jakies pomysly?

jarekczek
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Siemianowice Śląskie
  • Postów:500
0

Osobne klasy na zwrócenie tematu z postami i bez postów, czyli trzeba zrobić DTO.


Przeważnie ignoruję niezarejestrowanych użytkowników.
SH
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 5 lat
  • Postów:84
0

Mogłbyś lepiej opisac mi jak sie robi ten caly proces z ta klasa DTO? wtedy musze zrobic repozytorium dla DTO tez? ogolnie nie wiem nawet co to jest i do czego sluzy DTO, moglby mi ktos to wytluamczyc?

S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
0

Do tego żeby przenosić dane. jak sama nazwa wskazuje (Data Transfer Object) : https://en.wikipedia.org/wiki/Data_transfer_object, np. oddzielasz encje JPA od tego co wypuszczasz na zewnątrz


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
edytowany 1x, ostatnio: scibi92
SH
ale w jaki sposob mam polaczyc encje i DTO zeby bylo wiadomo ze chodzi o wyswietlenie dan z JPA, z bazy danych poprzez DTO?
OtoKamil
Napisać sobie konwerter który zmapuje Ci pola z encji na DTO (user.name -> userDto.name) lub użyć MapStructa, ale jeśli robisz to tylko dla 1 encji to chyba na razie nie warto

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.