我的数据库表具有属性,例如长度、唯一约束等。为什么要在代码中使用 JPA 注释来保留此类约束(例如 @UniqueConstraint
、length = '25'
等),因为数据库不会接受错误的记录并会抛出异常。这不是双重检查吗?是为了更好的异常处理吗?
最佳答案
这些注释和属性仅用于 DDL 目的,即如果您让 Hibernate 创建您的架构。
Java 中的验证可以通过对实体应用 bean 验证来完成:这些允许您在访问数据库之前进行验证,并实现更好的错误处理,因为数据库可能会抛出通用异常,而该异常不会提供任何干净的识别方法相关字段:关于java - 当 DB 有这样的约束时,为什么要使用 JPA/Hibernate 约束注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39464611/