dea*_*mon 37 java validation jpa unique bean-validation
我想对@UniqueBean Validation 有一个约束,但标准不提供.如果我使用JPA,@UniqueConstraint我就没有独特的验证和错误报告机制.
有没有办法定义@Unique为Bean Validation约束并将其与JPA组合,以便JPA创建一个具有唯一约束的列,并检查值是否唯一?
Pas*_*ent 50
除非您获得整个表的锁定,否则基本上不可能使用SQL查询检查单一性(任何并发事务可以在手动检查之后但在提交正在进行的事务之前修改数据).换句话说,不可能在Java级别实现有效的唯一验证,从而提供验证实现.检查unicity的唯一可靠方法是提交事务.
BV规范总结如下:
附录D. Java Persistence 2.0集成
问题:我们应该添加映射到@Column的@Unique(unique = true)吗?
@Unique无法在Java级别可靠地进行测试,但可以生成数据库唯一约束生成.@Unique今天不属于BV规范.
因此,虽然我同意在Bean Validation异常中包含唯一(和非null)约束违规会很好,但目前情况并非如此.
有关如何实现@Unique以及围绕它的问题的更多信息可以在这里找到 - http://community.jboss.org/wiki/AccessingtheHibernateSessionwithinaConstraintValidator
| 归档时间: |
|
| 查看次数: |
35683 次 |
| 最近记录: |