休眠 @NotEmpty 已弃用
Posted
技术标签:
【中文标题】休眠 @NotEmpty 已弃用【英文标题】:Hibernate @NotEmpty is deprecated 【发布时间】:2018-08-05 18:24:32 【问题描述】:我正在使用5.2.13.Final 版本的hibernate-core 和 5.2.13.hibernate-validator的最终版本。
@NotEmpty
@Column(name = "SSO_ID", unique = true, nullable = false)
private String ssoId;
ssoId
为空时,当我需要来自message.properties
文件的以下验证消息时,@NotEmpty
出现在图片中:
NotEmpty.user.ssoId=SSO ID can not be blank.
但@NotEmpty
在最新版本中已弃用。它的等价物是什么?
【问题讨论】:
尝试改用javax.validation.constraints.NotEmpty
(参见github.com/hibernate/hibernate-validator/blob/master/engine/src/…)。
【参考方案1】:
一般来说,由于某些东西在 javadoc 中被标记为已弃用,javadoc 也会解释什么是替代方案。
org.hibernate.validator.constraints.NotEmpty annotation javadoc 状态(重点是我的):
已弃用。改用标准 javax.validation.constraints.NotEmpty 约束
请注意,自 Hibernate 5 以来,Hibernate 弃用了其几个特定的验证约束类,转而使用标准的 JSR 380-bean validation 类。 另请注意,Hibernate Validator 6 库实际上是 the reference implementation of this JSR。
Here 是针对 Hibernate 验证器的已弃用 API 的更新列表。
【讨论】:
这意味着我们必须同时使用两种注解,Hibernate 和 javaannotations? 不是“必须”,但如果您使用在 JSR 中没有对应项的特定 Hibernate 验证注释,则可以。如果您使用 Hibernate Validator 6,它应该不是问题,因为它是 JSR 的默认实现。因此,您将只有javax.validation
注释。【参考方案2】:
使用 导入 javax.validation.constraints.NotBlank; 代替 导入 org.hibernate.validator.constraints.NotBlank;
【讨论】:
您能否详细说明一个可行的答案? “NotBlank”去哪儿了?它也是一个属性(@NotBlank)吗?以上是关于休眠 @NotEmpty 已弃用的主要内容,如果未能解决你的问题,请参考以下文章
@NotEmpty@NotNull@NotBlank 的区别
@notnull @notempty @notblank区别