Wpis z mikrobloga

Pytanie dotyczące JSONA w Spring. Mam Entity Lead(do przechowywania leadów) w którym znajduje się zagnieżdżona na zasadzie OneToMany (Lazy) lista komentarzy jako innych obiektów. Aplikacja webowa, która będzie wyświetlała liste leadów nie powinna pokazywać komentarzy od razu - dopiero po kliknięciu w odpowiedni lead, ładowane będą jego komentarze.

Z tego względu zastosowałem @JsonView, który odfiltrował mi pozycje, których nie chcę na razie wyświetlać - wiadomo performance.

Jak jednak przywołać komentarze do konkretnego leada już w aplikacji, skoro je odfiltrowałem poprzez jsonview?

Jedyne co mi przychodzi do głowy: każdy komentarz przechowuje id leada do którego należy, więc muszę przywołać bezpośrednio komentarze jakimś mappingiem wskazującym na id leada np.: /leads/{id}/comments . Mapping taki przywołał by tylko komentarze.

Czy to dobry pomysł? Jak to się robi 'zawodowo'?

#java #spring
  • 6
@zwolejo: Hej, a czy znasz jakiś sposób na pogodzenie @JsonView z Page i Pageable? Chciałbym poukładać wyniki w strony (też względy wydajnościowe), ale JsonView nie radzi sobie z tym i endpoint zwraca jedynie {} Szukałem rozwiązań w necie ale żadne nie działa...
@reconn: za malo informacji. Z mojej wiedzy Page springowy dziala na repozytorium. JsonView dziala na converterze w RestControllerze. Jedno nie ma nic wspolnego z drugim. Zapnij sie na debugerze i zobacz czy repozytorium zwraca Ci dobry rezultat. Bo moze zapytanie zwraca pusta liste, czyli blad w zapytaniu. Jesli rezultat bazodanowy jest ok, to zle uzywasz adnotacji @jsonview. Wtedy ewentualnie mozesz poszukac w issuesach do json view czy nie ma wpisow