wake-up-neo.com

Hibernate @NotEmpty-Annotationsäquivalent in Javax.package oder alternativ

Gibt es eine Möglichkeit, die @NotEmpty-Hibernate-Validierung zu implementieren, ohne eine benutzerdefinierte Validierung zu schreiben?. Nur @NotNull. Es gilt jedoch nicht für Nicht-NULL-Werte, sondern für leere Werte. Ich möchte also eine Alternative für @NotEmpty.

@Pattern verwenden? Wie?

32
Kevin Rave

NotEmpty ist nur eine Kombination aus @NotNull und @Size(min=1).

81
Affe

Beachten Sie, dass @NotEmpty für eine Liste <> mit einem Nullelement gültig zurückgegeben wird.

Ein bisschen bizarr im Falle einer @QueryParam-Liste <>

Wie gesagt, ich habe eine benutzerdefinierte Annotation erstellt, die selbst mit @NotNull und @Size (min = 1) mit einem benutzerdefinierten Prüfer versehen wurde, der die Auflistung durchläuft und ein boolesches Flag nur dann positioniert, wenn die Elemente nicht null sind.

7
Jerome_B

Aktualisierte:

Ich erhielt -2 Punkte in meinen ERGEBNISSEN dieser Antwort.

Also aktualisiere ich es.

Im Hibernate @NotEmpty-Quellcode nach Hibernate 6 wurde uns mitgeteilt, dass wir stattdessen die standardmäßige {@link javax.validation.constraints.NotEmpty} -Einschränkung verwenden:

/**
 * Asserts that the annotated string, collection, map or array is not {@code null} or empty.
 *
 * @author Emmanuel Bernard
 * @author Hardy Ferentschik
 *
 * @deprecated use the standard {@link javax.validation.constraints.NotEmpty} constraint instead
 */

Sehen: 

https://github.com/hibernate/hibernate-validator/blob/6.0/engine/src/main/Java/org/hibernate/validator/constraints/NotEmpty.Java


Alte Antwort:

Nach der Bean Validation 2.0 (JSR 380) gibt es eine neue Anmerkung @NotEmpty:

javax.validation.constraints.NotEmpty

Sehen:

http://beanvalidation.org/2.0/spec/#builtinconstraints-notempty

https://github.com/beanvalidation/beanvalidation-api/blob/master/src/main/Java/javax/validation/constraints/NotEmpty.Java

1
zhouji

Für den Ruhezustand ist es in der neueren Version veraltet.
Mit der neueren Version der Javax-Validierung hat es @Empty

Verwenden

import javax.validation.constraints.NotEmpty;

@NotEmpty
private List<Record> records;
0
Deep