这是为了寻找验证而不是问题:
@Column.unique
Hibernate检查&确保JPA级别的列条目的唯一性。
此处的列可以是任何列,不一定是复合键的键或部分。
@Column.unique
工作正常 - 检查字段值,如果它已经在我所期望的表中,则不插入它。
Hibernate在注释@Column(unique=true)
上添加了一个索引 - 这也没关系。
但是,@Column.unique
specs读取的内容与关键字段相同。
(Optional) Whether the property is a unique key. This is a shortcut for the UniqueConstraint annotation at the table level and is useful for when the unique key constraint is only a single field. This constraint applies in addition to any constraint entailed by primary key mapping and to constraints specified at the table level.
我想知道我是否在这里遗漏了一些东西 - 我以后是否会遇到麻烦。
ps:我意识到使用了hibernate的唯一约束 确保列条目的唯一性 在JPA级别 - 并且不会确保它在数据库本身下面。 这不是问题。
PPS;我也知道在@UniqueConstraint
中使用@Table
属性作为替代方案。
这不是我之后的事情。它在桌面级别做同样的事情。
TIA。
答案 0 :(得分:0)
据我所知,在生成DDL期间使用unique
注释的javax.persistence.Column
属性。
这意味着,如果您尝试从映射的类创建数据库模式,那么无论此属性存在并设置为true,都会将唯一约束添加到数据库中的相应列。
但是,根据JPA规范,它在应用程序运行时没有任何影响。