【发布时间】:2015-07-31 20:37:20
【问题描述】:
我有一个可以创建和编辑组的应用程序。每个组都有一个独特的标题。当有人尝试创建新组时,我会检查是否存在具有该标题的组,如果存在则验证失败。问题是当有人尝试编辑组并且不更改标题时,根据我的自定义验证,有一个具有该标题的组(某人当前正在编辑的那个)并且我的验证失败,因此用户无法保存该组。所以我想问一下是否有人可以解决这个问题。非常感谢您的任何回答!
我的小组课
public class UserGroupData implements Serializable {
private Long id;
@NotNull(message = "{NotNull.userGroupData.title}")
@Size(max = 20, message = "{Size.userGroupData.title}")
@UserGroupTitle(message = "{Unique.userGroupData.title}")
private String title;
我的验证器界面
@Documented
@Constraint(validatedBy = UserGroupTitleValidator.class)
@Target( { ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface UserGroupTitle {
String message();
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
我的验证器
public class UserGroupTitleValidator implements ConstraintValidator<UserGroupTitle, String> {
@Autowired
UserGroupRepo userGroupRepo;
@Override
public void initialize(UserGroupTitle paramA) {
}
@Override
public boolean isValid(String UserGroupTitle, ConstraintValidatorContext ctx) {
UserGroup userGroup = userGroupRepo.findOneByTitle(UserGroupTitle);
if(userGroup!=null){
return false;
}
return true;
}
}
【问题讨论】:
标签: spring hibernate jpa bean-validation