JPA 2.0/Hibernate에서 조합된 여러 필드 유효성 검사
JPA 2.0/Hibernate를 사용하여 데이터 유효성 검사를 수행할 때 유효성 검사가 필요할 수 있습니다. 데이터 무결성을 보장하기 위해 여러 필드를 조합합니다. 예를 들어, getValue1() 및 getValue2()라는 두 개의 필드가 있는 모델을 생각해 보세요. 두 필드가 모두 null이면 모델은 유효하지 않은 것으로 간주되지만 그렇지 않으면 유효한 것으로 간주됩니다.
다중 필드 유효성 검사에 대한 클래스 수준 제약 조건
여러 속성을 함께 검증하려면 다음을 수행할 수 있습니다. 클래스 수준 제약 조건을 활용합니다. Bean 유효성 검증 사양을 사용하면 개별 속성이 아닌 전체 클래스에 적용되는 사용자 정의 제약 조건을 정의할 수 있습니다. 이 접근 방식은 여러 필드에 대한 액세스가 필요한 복잡한 유효성 검사를 수행할 수 있는 유연성을 제공합니다.
클래스 수준 제약 조건을 정의하는 방법
클래스 수준 제약 조건을 정의하려면 다음을 따르세요. 다음 단계를 따르세요.
샘플 구현
다음은 getValue1() 및 getValue2()의 조합을 검증하기 위한 클래스 수준 제약 조건의 구현 예입니다.
<code class="java">@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Constraint(validatedBy = MyModelConstraintValidator.class) public @interface MyModelConstraint { String message() default "{error.invalidModel}"; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; } public class MyModelConstraintValidator implements ConstraintValidator<MyModelConstraint, MyModel> { public void initialize(MyModelConstraint constraintAnnotation) {} public boolean isValid(MyModel object, ConstraintValidatorContext context) { // Perform validation logic here return !(object.getValue1() == null && object.getValue2() == null); } }</code>
적용 클래스 수준 제약 조건
MyModel 클래스에 @MyModelConstraint 주석을 추가하여 클래스 수준 제약 조건을 적용합니다.
<code class="java">@MyModelConstraint public class MyModel { public Integer getValue1() { ... } public String getValue2() { ... } }</code>
이제 MyModel 인스턴스를 검증할 때 프레임워크는 MyModelConstraintValidator를 적용하고 모델이 유효한 것으로 간주하기 전에 getValue1() 및 getValue2()가 모두 null이 아닌지 확인합니다.
위 내용은 JPA 2.0/Hibernate를 사용하여 여러 필드를 조합하여 유효성을 검사하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!