java - 实体持久性注册验证监听器

标签 java hibernate validation orm

我正在将JBoss 6和Seam一起使用,我有一个要保留的实体User。我扩展了org.jboss.seam.framework.EntityHome以提供UserHome类,并重写了persist()方法。我已经使用javax.validation注释彻底注释了我的实体类。当我为我的实体类中的所有字段提供有效值时,该对象将持久存在而不会出现问题。当我违反验证约束之一时,持久性将按预期失败。

我遇到的问题是异步持久性期间的约束违规:hibernate不会告诉我违反了哪个约束!

javax.validation.ConstraintViolationException: validation failed for classes [com.example.model.User] duringpersist time for groups [javax.validation.groups.Default, ]
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.validate(BeanValidationEventListener.java:132)
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.onPreInsert(BeanValidationEventListener.java:71)

如果通过将EntityManager.flush()添加到UserHome.persist()来强制同步持久性,那么我可以捕获ConstraintViolationException并输出包含违反约束的日志语句。

我的问题:是否可以为约束违规向hibernate / jboss注册一个侦听器?我认为休眠不打印违规有点la脚,但是希望我可以插入一些代码来捕获并记录它们以获取更多信息。否则我不知道违反了什么约束。

谢谢!

最佳答案

请检查这些链接,您将获得良好的信息:

validator-checkconstraints

additionalmodules

关于java - 实体持久性注册验证监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2556462/

相关文章:

hibernate - 为什么在我的 build.xml 中尝试运行 hibernate 工具时出现错误 "Only antlib URIs can be located from the URI alone,not the URI"

java - 用于根据枚举类型验证字符串的自定义注释

java基础垃圾回收

java - 可以使用函数式操作

java - 有什么好的库来读写 csv 文件吗?

java - 无法使用 Scala 从 Cassandra DB 的原始数据类型映射读取数据

mysql - 使用多个where子句在spring data jpa中删除

java - JPA 2.0 - 使用@NamedNativeQuery 的 Oracle 函数 - 错误

html - 如何防止 W3C Validator 解析内部 CSS?

javascript - 如何更改mvc中验证消息的样式?