Java Bean验证中缺少@NotBlank。如何效仿?

Java Bean验证中缺少@NotBlank。如何效仿?,java,bean-validation,Java,Bean Validation,我正在迁移一个使用Bean验证的Hibernate实现构建的应用程序。在这段代码中使用了注释@NotBlank(org.hibernate.validator.constraints.NotBlank) 然而,在我的新WebSphere8容器中,有一个绑定的Bean验证实现,我想使用它。但是,@NotBlank似乎不属于该计划的一部分 关于如何用正确的Bean验证注释模拟标记,有什么建议吗? 我想应该从以下几点开始: @NotNull@Size(min=1)Hibernate验证程序的@NotB

我正在迁移一个使用Bean验证的Hibernate实现构建的应用程序。在这段代码中使用了注释
@NotBlank
org.hibernate.validator.constraints.NotBlank

然而,在我的新WebSphere8容器中,有一个绑定的Bean验证实现,我想使用它。但是,
@NotBlank
似乎不属于该计划的一部分

关于如何用正确的Bean验证注释模拟标记,有什么建议吗? 我想应该从以下几点开始:
@NotNull@Size(min=1)

Hibernate验证程序的
@NotBlank
是一个带有
@NotNull
的注释。此外,它还有一个检查已验证值的修剪长度是否大于0的选项。

添加大小约束只能确保空的“”字符串不会通过,但允许“”等字符串通过,因为它们的大小大于1。我遇到了类似的问题。我不能使用hibernate的NotBlank注释,因为我的模式是自动生成的

  regex=".*[\S]+.*" 
这帮我完成了任务。
注:由于某些原因,*符号被接受为注释,同时(.)

我不允许添加注释,因此这是我对Gunnar上述答案的“注释”。到GitHub的链接已断开。以下是两个相关的地方:

  • 这就是注释本身
  • 这是执行工作的约束

@NotNull@Size(min=1)
是一个良好的开端。但是你不需要“模仿”任何东西:你可以简单地实现你自己的
@NotBlank
。这是一个很好的答案!作为约束验证器的替代方案,我相信您可以使用
@Pattern(regex=“(?!^[\s]*$)”
;请参阅@Scala发烧友的回答谢谢,修复了链接。值得一提的是,Bean Validation 2.0(JSR 380)还定义了
@NotBlank
约束。因此,今后,不必从任何特定的实现访问它(事实上,我们不推荐Hibernate Validator 6中现有的on)。