有没有办法阻止在数据持续时执行某些验证。
我知道
spring.jpa.properties.javax.persistence.validation.mode =无
但我相信禁用所有验证,我只是想为某些字段禁用它(具体是密码,因为它是在那个时间编码然后模式不匹配)。谢谢!
更新(更多详情):
@Pattern(regexp = "^[A-Za-z0-9_@!]+$")
private String password;
我有一个使用上述模式验证的密码字段(A-Z,a-z,0-9和_,@ ,!)。在控制器中,它通过下面的代码验证成功。
@RequestMapping(value = "/adduser", method = RequestMethod.POST)
public ModelAndView signUp(ModelAndView modelAndView, @ModelAttribute @Valid LoginUser loginUser, BindingResult bindingResult) {
LoginUser loginUserAdded = null;
if (!bindingResult.hasErrors()) {
loginUser.setPassword(passwordEncoder.encode(loginUser.getPassword()));
loginUserAdded = createUser(loginUser);
....
然后在持久化之前我编码密码然后在JpaRepository中调用save方法时抛出错误,因为编码器更改了密码值并且它不满足应用于它的模式验证。
现在我正在寻找一种方法,可以在持续时禁用此字段的验证。