次のように、Hibernate と Spring Annotations を使用して多くの検証を行っています。
public class Account {
@NotEmpty(groups = {Step1.class, Step2.class})
private String name;
@NotNull(groups = {Step2.class})
private Long accountNumber;
public interface Step1{}
public interface Step2{}
}
そして、コントローラでは、引数で呼び出されます:
public String saveAccount(@ModelAttribute @Validated({Account.Step1.class}) Account account, BindingResult result) {
//some more code and stuff here
return "";
}
しかし、コントローラーメソッドのロジックに基づいて、使用するグループを決定したいと思います。検証を手動で呼び出す方法はありますか? みたいなresult = account.validate(Account.Step1.class)
?
独自の Validator クラスを作成することは承知していますが、それは避けたいことです。クラス変数自体で注釈を使用することをお勧めします。