JPA实体是否应该匹配它们正在映射的数据库的约束?
用于数据生成的数据库触发器又如何呢?
解决方法:
是的,您应该在JPA模型中对约束建模,因为最好在实体中明确声明那些约束.
一方面,仅出于文档目的(许多开发人员将使用您的实体模型,而使用bean时几乎没有开发人员将使用数据库模型).
另一方面,因为许多框架(例如JSF)都会查看它们,所以您可能会尽早捕获错误输入(甚至在您的UI中也有可能).
而且,您应该尝试将触发器从数据库移到您的实体-将应用程序逻辑放在一个位置并使这些内容明确.但是将逻辑加倍是没有道理的-因此,如果您需要将这些触发器保留在数据库中,请不要在实体中添加相同的触发器(但是您应该在JavaDoc中提及这些触发器).