#spring #java #programowanie
Mirki, robię formularz dodawania nowego np. kota. Kot zawiera w sobie inne obiekty takie jak obiekt sekcji:
Razem z pustym modelem kota przekażę do formularza listę sekcji. Użytkownik będzie miał możliwość wyboru z listy.
Jak przypisać wybór użytkownika jako obiekt do modelu kota na poziomie formularza? Czy dopiero później muszę dodać tę sekcję ręcznie kot.setSection(sectionService.findOne(id))? Albo może jest jakaś adnotacja która pozwoli na przypisanie id a później automatycznie przypisze odpowiedni obiekt?
Do widoków używam Thymeleaf jeżeli to ma znaczenie.
Mirki, robię formularz dodawania nowego np. kota. Kot zawiera w sobie inne obiekty takie jak obiekt sekcji:
@ManyToOne
@JoinColumn(name = "idsection")
private Section section;Razem z pustym modelem kota przekażę do formularza listę sekcji. Użytkownik będzie miał możliwość wyboru z listy.
Jak przypisać wybór użytkownika jako obiekt do modelu kota na poziomie formularza? Czy dopiero później muszę dodać tę sekcję ręcznie kot.setSection(sectionService.findOne(id))? Albo może jest jakaś adnotacja która pozwoli na przypisanie id a później automatycznie przypisze odpowiedni obiekt?
Do widoków używam Thymeleaf jeżeli to ma znaczenie.
- Najlepsze
- Wszystkie komentarze







Zrób klasę do formularza i nie jedź prosto z modelu. W metodzie odbierz dane, zwaliduj, zrób obiekt który chcesz zapisać do bazy i zapisz go. Jeśli obiekt ma relacje to musisz je też zapisać.
A tak prościej to gadasz sobie z hajbernejtem (bo zakładam że z niego korzystasz, gdyby to bylo mongo go nie byłoby pewnie pytania ( ͡º ͜ʖ͡º) ) to musisz
Mam jeszcze kilka pytań.
1. Gdy w jakimś widoku używam kilku obiektów to też mogę pakować je w jeden i tak przekazać żeby nie robić bałaganu w kontrolerze?
2. Walidacja to raczej na poziomie kontrolera, a gdzie tworzyć nowy obiekt domenowy z tych danych które przyszły w formularzu? W serwisie tej domeny czy też w
1. Tak
2. W kontrolerze, ja w serwisie trzymam to co jeszcze kiedyś mi się przyda, a odczyt z formularza zapewne masz tylko w jednym miejscu (bo po co 2 takie same formularze)
3. Przeważnie daje do paczki 'form' obok kontrolera
4. ?