0
我爲表的主鍵自動生成id
字段。我必須遵守規格。但是,邏輯密鑰是(firstName, lastName)
對。記錄插入時的Hibernate複合邏輯密鑰
在實體類,我所定義的字段如下:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
// @NotNull
// @Column(nullable = false)
private String firstName;
private String lastName;
,並且僅使用firstName
和lastName
推翻equals()
和hashCode()
。
我想設置它,以便當我嘗試保存已存在於數據庫中的(firstName, lastName)
的記錄時,它不會保存但會拋出錯誤。 目前,
session.save(person);
是節省重複(firstName, lastName)
對儘可能多的,因爲他們來。這在Hibernate中如何完成?
@Table([email protected](columnNames = {"firstName", "lastName"}))
沒有達到它。
你的db列名真的是'firstName'和'lastName'嗎?不是'first_name'和'last_name'? – veljkost
@veljkost是的。實體類字段名稱與db字段具有完全相同的拼寫。我最初讓Hibernate創建表。 –