Set<User> a przyjmowanie wartości z checkboxes

Set<User> a przyjmowanie wartości z checkboxes
EL
  • Rejestracja:około 13 lat
  • Ostatnio:4 miesiące
0

Cześć!
Robię niewielki projekt przy użyciu SpringMVC i Hibernate.

Aktualnie robię prosty widok strony "Spotkanie". 2 pola tekstowe + lista użytkowników pobrana z bazy.
I tu mam mały problem.
Na stronie widoku wrzucam sobie:

Kopiuj
 <form:checkboxes path="users" items="${userSet}" itemLabel="name" />
           

Przez kontroler wysyłam userSet który zawiera listę możliwych osób. I to śmiga.
Jeśli nie zaznaczę żadnego checkboxa (tylko wpiszę w pola tekstowe tytuł i datę spotkania) bez problemu wrzuci do bazy.
Jak tylko zaznaczę przynajmniej 1 checkbox, od razu wyrzuca błąd:

Kopiuj
The request sent by the client was syntactically incorrect.

Pomyślałem sobie że problem może leżeć w polu który przyjmuje te dane.

Kopiuj
    @ManyToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
    @JoinTable(name = "MEETING_USER", joinColumns = {@JoinColumn(name = "MEETING_ID")},inverseJoinColumns = {@JoinColumn(name = "USER_ID")})
    private Set<User> users = new HashSet<User>();

Aby sprawdzić czy to wina Set'a, dodałem dodatkowe pole List typu User. Wysypywało się dalej. Ale kiedy utworzyłem Listę typu Object, wszystko gra.

Problem w tym że przyjmowanie listy typu Object (dodatkowo okraszone adnotacją

Kopiuj
@Transient

) zmusza mnie później do cudowania żeby w kontrolerze przerobić to na seta i typu User. Bezsensu.
Ktoś może ma pomysł dlaczego mój standardowy Set<User> się krzaczy?

Pozdrawiam

niezdecydowany
niezdecydowany
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 9 lat
  • Lokalizacja:Bieszczady
0

Jakie dane idą do servera ?


"Perhaps surprisingly, concurrent programming isn’t so much about threads or
locks, any more than civil engineering is about rivets and I-beams."
EL
  • Rejestracja:około 13 lat
  • Ostatnio:4 miesiące
0

Nie bardzo wiem co masz na myśli ale wysyłam obiekt Meeting który zawiera pola Name, Date i lista zaproszonych osób a potem Hibernate robi resztę.
Jak obiekt zostaje wysłany bez zaznaczonych osób to bez problemu dodaje do bazy. Wystarczy zaznaczyć któregokolwiek checkboxa i wyrzuca bład 400.

EDIT
Co ciekawe, zmieniłem listę na Set i też chodzi... Pod warunkiem tylko że jest to Set typu Object. Zmiana Set<User> z automatu się krzaczy. A to dziwne bo jak zostawię Set<Object> i odpalam w debugerze to przechodzi i pokazuje że są to objekty typu User. Ale jak zmienie Set<User> to się sypie :o

edytowany 1x, ostatnio: eL

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.