假设我有“主题”表
CREATE TABLE subject (id int PRIMARY KEY, name VARCHAR(255) **UNIQUE**)
和相关的映射对象,
@Entity
@Table(name="subject")
public class SubjectDO {
@Id
@Column(name="id")
int id;
@Column(name="name", unique=true)
String name;
...
// Getter-Setter methods
}
当我尝试保存具有重复“名称”的对象时,无论是否定义了“unique = true”,我都会遇到类似的行为(同样的异常(exception)。)很明显,除非伸出援手,否则 JPA 实现实际上无法做任何事情到数据库进行检查。
它的真正用例是什么?
(我在这里假设,唯一约束也在数据库级别定义。)
最佳答案
@Column
中的
unique
仅在您让 JPA 提供程序为您创建数据库时使用 - 它将在指定列上创建唯一约束。但是如果您已经拥有数据库,或者您在创建后对其进行了更改,那么 unique
就没有任何效果。
关于java - JPA - @Column (unique=true) - 拥有 'unique' 属性的真正意义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30460596/