Gau*_*tel 29 java hibernate jpa
假设我有'主题'表
CREATE TABLE subject (id int PRIMARY KEY, name VARCHAR(255) **UNIQUE**)
Run Code Online (Sandbox Code Playgroud)
和关联的映射对象,
@Entity
@Table(name="subject")
public class SubjectDO {
@Id
@Column(name="id")
int id;
@Column(name="name", unique=true)
String name;
...
// Getter-Setter methods
}
Run Code Online (Sandbox Code Playgroud)
当我尝试保存具有重复'name'的对象时,有或没有'unique = true'定义,我得到类似的行为(相同的异常.)而且很明显JPA实现不能真正做任何事情,除非伸手到DB为检查.
它的真实用例是什么?
(我在这里假设,唯一约束也在数据库级别定义.)
Pre*_*ric 61
unique
@Column
仅当您让JPA提供程序为您创建数据库时才使用in - 它将在指定列上创建唯一约束.但是,如果您已经拥有数据库,或者您在创建数据库后对其进行了更改,那么unique
就没有任何效果.