У меня есть модель веб-сайта, которая имеет свойство @Required User owner
.Это свойство заполняется внутри метода контроллера.Однако проверка проверяется при входе в метод контроллера, поэтому он считает объект недействительным (потому что в то время он есть).
Следует играть!для этой цели будет использоваться проверка?
Нужно ли просто отбросить аннотацию @Valid и проверить вручную, используя validation.required(website)
?
Обновление - при использовании validation.required(website)
проверяется тольковеб-сайт не является пустым, но он не запускает проверку любых аннотаций на веб-сайте.Если я не использую аннотацию параметра @Valid, означает ли это, что я не могу использовать проверки на основе аннотаций для самой модели?Что делать программисту?
Update2 - похоже, мне следует звонить validation.valid(website)
вместо validation.required(website)
.Я также добавил аннотацию @Required
к параметру метода add()
(вместо @Valid).Это так и надо?
@Entity
public class Website extends PortalModel {
@Required
public String url;
@Required
@ManyToOne
public User owner;
}
public class Sites extends UserAwareControllerBase {
public static void added(@Valid Website website) {
website.owner = getUser(); // from base class
if (Validation.hasErrors()) {
Validation.keep();
params.flash();
add();
}
websiteRepo.save(website);
edit(website.id);
}
}