ORM:如果手动维护db模式,则指定数据库约束的位置

时间:2011-11-10 08:01:00

标签: hibernate data-binding orm constraints

我看到3个变体:

  1. 在架构(* .sql)文件中指定数据库约束
  2. 在ORM中指定数据库约束(使用xml / annotations / whatever)
  3. 使用1)和2)的混合
  4. 这个主题有什么最佳实践吗? 特别是,我对Hibernate世界感兴趣。

2 个答案:

答案 0 :(得分:1)

应用的唯一约束是数据库中的约束。只有在使用hibernate工具从Java源代码生成数据库SQL模式时,才能在Hibernate注释中指定约束。最后,它总是最终存在于SQL中。

因此,如果您手动维护架构并且不从Java注释生成架构,则使用注释指定它们是无用的(除了文档目的)。

答案 1 :(得分:-1)

尽管JB Nizet的答案仍然有效,但仍有一个排除 - 引用约束Foreign key,“参照行动”。 (Hibernate)实体中定义的级联操作和db模式中定义的外键引用操作一起工作。