记录插入

时间:2017-02-13 18:41:39

标签: java hibernate

我有自动生成的id字段用于表的主键。我必须遵守规范。但是,逻辑密钥是(firstName, lastName)对。

在实体类中,我按如下方式定义了字段:

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;

//  @NotNull
//  @Column(nullable = false)
private String firstName; 

private String lastName; 

并仅使用equals()hashCode()覆盖firstNamelastName

我想设置它,以便当我尝试使用已存在于数据库中的(firstName, lastName)保存记录时,它不会保存但会抛出错误。 目前,

session.save(person);

正在保存重复的(firstName, lastName)对。这是如何在Hibernate中完成的?

@Table(uniqueConstraints=@UniqueConstraint(columnNames = {"firstName", "lastName"}))

没有实现它。

1 个答案:

答案 0 :(得分:0)

我添加了

@Table(uniqueConstraints=@UniqueConstraint(columnNames = {"firstName", "lastName"}))
在我创建表之后

作品。