私はWebアプリケーションにthymeleaf + sprinbootを使用していますが、バリューオブジェクト(VO)を使用すると、検証エラーをどのように制御できるのでしょうか。VOを使用したThymeleaf JPAのエラー検証
あなたが見ることができるように、実体は一つの属性のための制約(ユニーク)を持つ:
@Entity
public class Company {
@Id
@GeneratedValue
Integer id = 0;
@Column(unique = true)
String code;
String name;
String address;
...
}
しかし、VOが、それを有することが意図されていません。
public class CompanyVO {
Integer id = 0;
String code;
String name;
String address;
...
}
したがって、コントローラはできません値が重複しているかどうかを確認します。
@RequestMapping(method = RequestMethod.POST)
public String set(@Valid CompanyVO companyVO, BindingResult result, Model model){
Company company = new Company();
if(result.hasErrors()){
return "company";
}
if(companyVO.getId() != 0){
company = companyRepository.findOne(companyVO.getId());
}
mapper.map(companyVO, company);
companyRepository.save(company);
return "redirect:/companies";
}
ビューに検証エラーを表示するにはどうすればよいですかVOを使うときは?