问题标签 [hibernate-validator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
28845 浏览

java - 休眠唯一密钥验证

我有一个字段,比如说 ,user_name它在表中应该是唯一的。

使用 Spring/Hibernate 验证对其进行验证的最佳方法是什么?

0 投票
1 回答
1180 浏览

java - 使用 Hibernate Validation 自定义消息是否需要任何配置

我正在使用以下类通过 Hibernate Validation 来验证我的 bean。它工作得很好。它基本上是这里为 JPA 1找到的侦听器,已转换为用于验证我的 Spring 控制器中的 bean。我正在尝试自定义返回的消息。 这个和我能找到的所有其他资源都说只需将 ValidationMessages.properties 文件放在 Web-Inf 目录中。该文件也包含在下面。这是行不通的。有什么建议么?

ValidationMessages.properties 文件

0 投票
1 回答
1576 浏览

java - hibernate validator for cross field validation

I have a question about hibernate validator:

String a and b can either be null but can't both be null. How can I use Hibernate Validator to validate this case?

Thanks,

0 投票
2 回答
12674 浏览

java - 如何使用 Hibernate Validator 动态解析消息参数?

我正在使用 Hibernate Validator 并希望在错误消息中解析类别的名称。考虑这个简单的场景:

假设我有一个 HazardousCategoryConstraint 的工作实现。验证器根据限制名称列表检查每个类别的名称。当我调用 validate(InventoryReport) 时,我得到了我期望的错误数,除了它们是相同的字符串。我希望看到类别名称解析到每条消息中。有人可以指点我一个如何动态解析参数的例子,或者告诉我怎么做吗?

0 投票
1 回答
7168 浏览

hibernate - javax.validation:收到错误“找不到类型的验证器:”

框架:JQuery、Spring、Hibernate、Hibernate Validator(JSR-303 Bean Validation)
平台:Windows

我正在尝试使用 JSR 303-Bean Validation 定义自定义约束 @IdMustExist。约束的目的是检查输入的 id 值是否存在于关联表中。我收到错误“javax.validation.UnexpectedTypeException:找不到类型的验证器:com.mycompany.myapp.domain.package1.class1”。

如果我将 @IdMustExist 放在 Class1 的字段定义中(如下面的示例代码中所示),我会收到上述错误。但是如果我将 @IdMustExist 约束放在 String 字段上,我不会收到上述错误。我的代码在 IdMustExistValidator.java 中崩溃。我不明白为什么 Hibernate 可以为“String”类找到验证器,但不能为域类“Class1”找到验证器。

我的类定义如下。

Class2.java

IdMustExist.java

IdMustExistValidator.java(请注意这个类设计有bug)

}

0 投票
2 回答
3358 浏览

jsf-2 - 调用 bean 验证

我正在使用 JSF 2,myfaces,hibernate-validator-4.1.0.Final.jar。

我使用 hibernate-validator 来验证表单中输入的值。

我正在开发批量上传模块,我在其中解析 csv 数据并创建数据库记录。

我如何在这里重用相同的验证器?



设置> constraintViolations = validator.validate(nc);
抛出此异常

2011 年 1 月 28 日上午 8:35:39 javax.faces.event.MethodExpressionActionListener processAction
严重:java.lang.NoSuchMethodError:javax.persistence.Persistence.getPersistenceUtil()Ljavax/persistence/PersistenceUtil;在 org.hibernate.validator.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:62)

我尝试了这个解决方案链接
我有 hibernate-jpa-2.0-api-1.0.0.Final.jar,hibernate-validator-4.1.0.Final.jar
我需要任何其他 jar 来完成这项工作吗?

0 投票
1 回答
2775 浏览

java - 无法解析休眠验证器消息

出于某种原因,我无法解析 Hibernate Validator 消息。我有以下内容applicationContext.xml

我正在使用<spring:message>来解析消息代码。不幸的是,我得到以下异常:

当我查看内部hibernate-validator-4.1.0-final.jar时,我在ValidationMessages.properties下找到了org/hibernate/validator/,所以我不确定为什么它无法解析该消息。

更新

我复制ValidationMessages.propertiessrc/main/webapp/WEB-INF/classes/properties修改了我的applicationContext.xml

但我遇到了同样的问题。问题是否与语言环境有关?

0 投票
3 回答
199 浏览

java - 分发此框架的最佳方式

我刚刚创建了一个框架(将其描述为一个集成会更准确),我想知道分发它的最佳方式是什么。该项目是 mavenized 并使用 Spring 3,但我在这两个领域都是新手,我不确定分发它的最佳方式是什么。

该框架涉及我创建的 Javascript 库、Spring 3(Web MVC 部分)和 Hibernate Validator 之间的集成。

  • 我有pom.xml整个项目的。
  • 我有一个src/main/java(正确命名空间)与集成相关的类。
  • 我有一个包含此集成所需的 Javascript 文件webapp的文件夹的目录。js
  • 我有一个WEB-INF/tlds带有 tld 的目录,用于在 Java 中实现的自定义标签。
  • 我有WEBINF/tags一个自定义标签的目录。
  • 我有一个applicationContext.xml.src/main/resources
  • 我有一个springmvc-servlet.xmlWEB-INF.
  • 我有一个web.xmlWEB-INF看起来是标准的,开箱即用;我不记得做过任何改变)。
  • 我有一个src/test/java/包含集成框架的测试

我应该包含/排除哪些文件/目录,以及分发此集成的好方法(对于 Spring 3)?有标准吗?

更新

抱歉,我没有弄清楚“分发”的含义:) 我的意思是其他开发人员可以将此框架作为工件包含在他们的项目中(可能作为 jar),类似于库的分发方式。我只是对那里有特定于 webapp 的东西这一事实感到困惑。

0 投票
2 回答
2888 浏览

hibernate - Bean Validation:接收 EntityNotFoundException 虽然有验证实体的约束

技术:Spring、Hibernate、JSR-303、JQuery
平台:Windows
我正在尝试实现@IdMustExist JSR-303 约束。约束的目的是检查输入的 id 值是否存在于关联表中。请参阅此链接以获取 IdMustExist.java 和 IdMustExistValidator.java 代码片段。

场景 1 - 输入了有效的 Id 值:在这种情况下,当执行 hibernate 的 EntityManager.merge 操作时,我看到执行了 @IdMustExist 约束。它成功验证输入的 Id 值是否存在于另一个关联/链接表中。Hibernate 成功完成了保存操作。我注意到在调用@IdMustExist 的验证器之前,hibernate 会为实体触发选择 SQL。

场景 2 - 输入了无效的 Id 值:在这种情况下,当执行 hibernate 的 EntityManager.merge 操作时,它会抛出 EntityNotFoundException(下面给出的堆栈跟踪),因为它找不到输入的无效 Id 的实体。我希望约束 @IdMustExist 在更新前阶段被触发,我们可以优雅地向用户显示错误消息。但在休眠进入更新前阶段之前,似乎有些事情失败了。我看到休眠触发实体的选择 SQL,然后抛出 EntityNotFoundException。它没有机会调用 validate @IdMustExist。

这是否意味着,我无法通过 JSR-303 验证输入的 Id 是否存在于关联/链接表中?有什么选择吗?

提前感谢您的帮助。J.P

HibernateClass2Dao.java

Class2ServiceImpl.java

Class2Controller.java

0 投票
3 回答
12293 浏览

java - 是否有使用带注释的方法参数启用 JSR 303 Bean 验证的标准方法

我一直在四处寻找一段时间,但没有运气。我没有使用 Spring MVC,但仍想使用@javax.validation.Valid来启用方法参数的验证。举个例子

使用 MVC,可以@Controller通过简单的方式为带注释的 bean启用此功能<mvc:annotation-driven/>(请参阅5.7.4.3 配置 JSR-303 验证器以供 Spring MVC 使用)。

使用 AOP 应该很简单。不过,我怀疑有一些标准的方法可以做到这一点。因此,问题是:非 MVC 应用程序和非控制器 bean 是否有类似的事情来启用带注释的 bean 的输入验证?