У меня проблема с созданием дочернего объекта, даже если моя форма не указывает, что он должен быть создан. Проблема, которую я получаю, заключается в том, что при отправке формы возникают ошибки поля проверки с указанием, что фамилия и имя вторичного пользователя отсутствуют.
В идеале, я хочу, чтобы вторичный код оставался пустым и, следовательно, не проверялся при отправке формы.
HTML-форма (для простоты):
<form th:action="@{/quotes/save}" th:object="${quote}">
<input type="text" th:field="*{primary.lastName}" />
<input type="text" th:field="*{primary.firstName}" />
</form>
Объект цитаты:
@Entity
public class Quote {
@ManyToOne
@Valid
@NotNull(groups={Quote.ValidationPrimary.class})
private Person primary;
@ManyToOne
@Valid
private Person secondary;
}
Объект Person:
@Entity
public class Person {
@NotEmpty
private String lastName;
@NotEmpty
private String firstName;
}
Контроллер Quote:
@Controller
public class QuoteController {
@PostMapping("/quotes/save")
public String save(@ModelAttribute @Validated({Quote.ValidationPrimary.class}) Quote quote, BindingResult bindingResult) {
quote.getPrimary(); // this contains a Person object... as expected
quote.getSecondary(); // this also contains a Person object... which is NOT EXPECTED
...
}
}