java - 当 DB 有这样的约束时,为什么要使用 JPA/Hibernate 约束注释

标签 java hibernate jpa

我的数据库表具有属性,例如长度、唯一约束等。为什么要在代码中使用 JPA 注释来保留此类约束(例如 @UniqueConstraintlength = '25'等),因为数据库不会接受错误的记录并会抛出异常。这不是双重检查吗?是为了更好的异常处理吗?

最佳答案

这些注释和属性仅用于 DDL 目的,即如果您让 Hibernate 创建您的架构。

Java 中的验证可以通过对实体应用 bean 验证来完成:这些允许您在访问数据库之前进行验证,并实现更好的错误处理,因为数据库可能会抛出通用异常,而该异常不会提供任何干净的识别方法相关字段:

http://docs.oracle.com/javaee/6/tutorial/doc/gircz.html

关于java - 当 DB 有这样的约束时,为什么要使用 JPA/Hibernate 约束注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39464611/

相关文章:

java - JavaFX 中的可编辑 TableView,仅输入数字

java - JPA, hibernate 。如何从@TableGenerator 获取下一个值

java - 无锁执行 Select HQL?

java - "org.hibernate.PersistentObjectException: detached entity passed to persist"当我尝试在数据库中插入数据时

hibernate - grails 2.4.3 升级后不必要的数据库 changeSet 与 boolean 相关

java - 容器管理的持久性上下文 : transaction-scoped vs. 扩展 - 如何决定?

java - Camel Jpa绕过@consumed

java - 改善 Android 应用程序 fragment 交易的加载时间

java - 使用 Maven 从单个通用项目创建不同的 war

mysql - 从现有对象创建新对象