조합된 여러 필드 유효성 검사
JPA 2.0/Hibernate에서 여러 필드에 대한 간단한 @NotNull 주석은 개별 필드만 유효성을 검사합니다. 필드 조합의 유효성을 검사하려면 클래스 수준 제약 조건 사용을 고려하세요.
Bean 유효성 검사 미리보기 파트 II: 사용자 정의 제약 조건에 설명된 대로 클래스 수준 제약 조건을 사용하면 개체 내의 여러 속성에 유효성 검사 논리를 적용할 수 있습니다. . 이는 여러 필드에 의존하는 복잡한 유효성 검사 규칙에 특히 유용합니다.
구현
클래스 수준 제약 조건을 구현하려면 주석(@AddressAnnotation)과 제약 조건을 정의하세요. 유효성 검사기(MultiCountryAddressValidator). 주석은 적용할 유효성 검사 규칙을 지정하고 유효성 검사기는 필드 조합의 유효성을 검사하는 논리를 구현합니다.
@AddressAnnotation public class Address { @NotNull @Max(50) private String street1; @Max(50) private String street2; @Max(10) @NotNull private String zipCode; @Max(20) @NotNull String city; @NotNull private Country country; } public class MultiCountryAddressValidator implements ConstraintValidator<AddressAnnotation, Address> { public boolean isValid(Address object, ConstraintValidatorContext context) { // Validate zipcode and city depending on the country // ... } }
유효성 검사기에서 객체 인스턴스는 isValid 메소드에 전달되어 모든 개체에 대한 액세스를 허용합니다. 유효성 검사를 위한 필드입니다. 유효성 검사기는 우편번호와 도시 간의 상관 관계와 같은 필드 간의 상호 의존성을 확인할 수 있습니다.
Usage
한 번 정의되면 클래스 수준 제약 조건을 적용할 수 있습니다. 주석을 사용하는 모델 클래스:
@AddressAnnotation public class MyModel { public Integer getValue1() { //... } public String getValue2() { //... } }
이 주석은 MultiCountryAddressValidator를 사용해야 함을 나타냅니다. getValue1()과 getValue2()의 조합을 검증합니다. 두 필드가 모두 null이면 모델이 유효하지 않은 것으로 간주됩니다. 그렇지 않으면 모델이 유효합니다.
위 내용은 JPA 2.0/Hibernate에서 조합된 여러 필드를 검증하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!