현재 외국 및 국내 주소가 모두 포함 된 연락처 정보를 저장하는 응용 프로그램을 구현 중이지만 주소도 사용할 수 없습니다.Bean 유효성 검사 그룹 상속이 그룹 시퀀스 공급자와 작동하지 않습니다.
나는 항상 유효성이 검사 된 정보에 대한 수퍼 그룹과 다른 주소 상태에 대한 두 개의 하위 클래스를 정의하려고 시도했습니다.
public interface ContactValidation {}
public interface DomesticValidation extends ContactValidation {}
public interface ForeignValidation extends ContactValidation {}
그런 다음 연락처 클래스에 @GroupSequenceProvider를 정의했습니다. 이 주소 검증의 수퍼 클래스가 비록
public class ContactGroupSequenceProvider implements DefaultGroupSequenceProvider<Contact> {
@Override
public List<Class<?>> getValidationGroups(Contact contact) {
List<Class<?>> defaultGroupSequence = new ArrayList<Class<?>>();
if(contact.getIsForeign()){
defaultGroupSequence.add(Contact.ForeignValidation.class);
} else {
defaultGroupSequence.add(Contact.DomesticValidation.class);
} //TODO: Add Address Disabled Case
defaultGroupSequence.add(Contact.class); //Get a GroupDefinitionException without this line
return defaultGroupSequence;
}
내가 주소 유효성 검사 중 하나에 프로그램을 실행
이 필드는 그룹으로 표시 = Contact.ContactValidation.class은 확인되지 않습니다.함께 사용하면 오류를 수정하고 제출하고 새로운 오류를 얻을 필요가 없도록이 애플리케이션을 함께 검증해야합니다.
또한 이와 같이 항상 유효성이 검사 된 필드가있는 솔루션을 피하기를 원합니다.
@NotBlank(groups={DomesticValidation.class,ForeignValidation.class ,ContactValidation.class})
private String fullContactName;
감사합니다.
내 질문은 http://stackoverflow.com/questions/21363481/groupsequenceprovider-and-group-is-a-superset 버전 4.3.1.Final는 같은 문제에게 답장을 보내 – rdm