我目前正在使用Hibernate和Postgresql。
我的数据库中有一些列需要设置"唯一"约束。所以我上网找到了两种方法
Postgresql:中的查询
ALTER TABLE foo ADD UNIQUE (thecolumn);
休眠注释:
@Table(
name = "foo",
uniqueConstraints = {@UniqueConstraint(columnNames = {"thecolumn"})}
)
哪种是首选方式?还是两者都需要?
谢谢。
如果您的数据库将仅由软件操作(如果您不打算使用任何实体表示法,则必须创建自己的验证以避免重复),则可以直接在软件中处理唯一约束。但为了保持完整性,我建议将其也放在DB中。避免人为失误。
如果您的实体配置在每次更改实体模型时都会更新数据库,那么db和entities将相等,但如果不是这样,则没有人保证您的列是唯一的。(除非身份证)。