java - JPA 实体是否应该匹配数据库约束和触发器?

标签 java hibernate jpa triggers constraints

JPA 实体是否应该匹配它们所映射的数据库的约束? 用于数据生成的数据库触发器如何,它们是否也应该匹配?

最佳答案

是的,您应该在 JPA 模型中对约束进行建模,因为最好在您的实体中明确说明这些约束。

一方面是因为仅出于文档目的(许多开发人员会查看您的实体模型,而几乎没有人会在使用您的 bean 时查看数据库模型)。

另一方面,因为您可以尽早捕获错误输入(甚至可能在您的 UI 中),因为像 JSF 这样的许多框架都会查看它们。

并且您应该尝试将触发器从您的数据库移动到您的实体 - 将应用程序逻辑保持在一个地方并使这些事情明确。但是,将逻辑加倍是没有意义的 - 因此,如果您需要将这些触发器保留在数据库中,请不要在实体中添加它们(但您应该在 JavaDoc 中提及触发器)。

关于java - JPA 实体是否应该匹配数据库约束和触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31735041/

相关文章:

java - Hibernate saveOrUpdate 创建一个对象的两个实例

java - jpa 非托管实体

java - JPQL TREAT AS/LEFT OUTER JOIN 处理

java - 如何验证对象的不同属性?

java - 关于 Swing 图像格式和服务提供商

java - Bean 属性 'cmpcode' 不可读或具有无效的 getter 方法 : Does the return type of the getter match the parameter type of the setter?

java - Spring JPA : OneToMany List update results in duplicate entries

java - 观察通过改造更改的实时数据不会在更改时触发

java - 用于反序列化的 Jackson 构建器模式

nhibernate - 在HQL中使用CASE语句选择