我有自动生成的id
字段用于表的主键。我必须遵守规范。但是,逻辑密钥是(firstName, lastName)
对。
在实体类中,我按如下方式定义了字段:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
// @NotNull
// @Column(nullable = false)
private String firstName;
private String lastName;
并仅使用equals()
和hashCode()
覆盖firstName
和lastName
。
我想设置它,以便当我尝试使用已存在于数据库中的(firstName, lastName)
保存记录时,它不会保存但会抛出错误。
目前,
session.save(person);
正在保存重复的(firstName, lastName)
对。这是如何在Hibernate中完成的?
@Table(uniqueConstraints=@UniqueConstraint(columnNames = {"firstName", "lastName"}))
没有实现它。
答案 0 :(得分:0)
我添加了
@Table(uniqueConstraints=@UniqueConstraint(columnNames = {"firstName", "lastName"}))
在我创建表之后。
作品。