Validieren von Feldkombinationen mit JPA 2.0/Hibernate
In JPA 2.0/Hibernate kann es vorkommen, dass eine Kombination von Feldern überprüft werden muss validiert werden. Beispielsweise können Sie ein Modell mit den Gettern getValue1() und getValue2() haben und das Modell gilt nur dann als gültig, wenn beide Getter ungleich Null sind.
Um diese Art der Validierung durchzuführen, können Sie die Klasse verwenden Von Bean Validation bereitgestellte Einschränkungen auf -Ebene. Einschränkungen auf Klassenebene wirken sich auf die gesamte Objektinstanz und nicht auf einzelne Eigenschaften aus.
Definieren einer Einschränkungsanmerkung auf Klassenebene
Definieren Sie zunächst eine Einschränkungsanmerkung auf Klassenebene. wie zum Beispiel @AddressAnnotation:
<code class="java">@Constraint(validatedBy = MultiCountryAddressValidator.class) @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface AddressAnnotation { String message() default "{error.address}"; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; }</code>
Implementieren des Einschränkungsvalidators
Als nächstes implementieren Sie einen Einschränkungsvalidator, wie zum Beispiel MultiCountryAddressValidator, der die Kombination von Feldern überprüft:
<code class="java">public class MultiCountryAddressValidator implements ConstraintValidator<AddressAnnotation, Address> { public void initialize(AddressAnnotation constraintAnnotation) {} public boolean isValid(Address object, ConstraintValidatorContext context) { Country country = address.getCountry(); // Validation logic based on country-specific rules return isValid; } }</code>
Klasse mit Anmerkungen versehen
Schließlich kommentieren Sie die Klasse, die Sie validieren möchten, mit der Einschränkungsanmerkung auf Klassenebene:
<code class="java">@AddressAnnotation public class MyModel { // ... }</code>
Durch die Verwendung Einschränkungen auf Klassenebene können Sie Feldkombinationen in JPA 2.0/Hibernate effektiv validieren und so die Integrität Ihrer Modelle sicherstellen.
Das obige ist der detaillierte Inhalt vonWie validiere ich Feldkombinationen mithilfe von Einschränkungen auf Klassenebene in JPA 2.0/Hibernate?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!