Hibernate @NotEmpty is deprecated

2020-08-09 06:30发布

问题:

I am using 5.2.13.Final version of hibernate-core and 5.2.13.Final version of hibernate-validator.

@NotEmpty
@Column(name = "SSO_ID", unique = true, nullable = false)
private String ssoId;

@NotEmpty comes in picture when I need the following validation message from themessage.properties file when ssoId is empty:

NotEmpty.user.ssoId=SSO ID can not be blank.

But @NotEmpty is deprecated in the latest version. What is its equivalent?

回答1:

Generally, as something is marked as deprecated in a javadoc, the javadoc explains also what is the alternative to.

The org.hibernate.validator.constraints.NotEmpty annotation javadoc states (emphasis is mine) :

Deprecated. use the standard javax.validation.constraints.NotEmpty constraint instead

Note that since Hibernate 5, Hibernate deprecated several of its specific validation constraint classes in favor to standard JSR 380-bean validation classes.
Note also that the Hibernate Validator 6 library is actually the reference implementation of this JSR.

Here is an updated list of deprecated API for Hibernate validator.



回答2:

Use import javax.validation.constraints.NotBlank; instead of import org.hibernate.validator.constraints.NotBlank;



回答3:

It is deprecated in favour of javaX Email.

import  javax.validation.constraints.Email;

@NotNull
@Email
public String email;