以下是代码:
@Entity
Public class StoreRunId{
@Id
@Column(name = 'id')
public int id;
@Column(name = 'name')
public String name;
@Column(name = 'sequence')
public String sequence;
}
我需要根据我的要求插入重复的ID。
然而,当我删除@Id时,Hibernate会说"没有为实体"指定标识符。
当我在代码中保留@Id时,当前行将被新值和相同的Id覆盖(并且不会为相同的Id创建新条目(。
有没有办法插入重复的ID?(注意:列"id"不是SQL中的主键(
无论需求如何,实体都必须通过唯一的密钥来识别。这不需要与任何数据库主键相对应,但必须有一个或多个唯一的列可以用于识别实体,因此一种做法是转换您的需求,如使用@Embeddable
@Embeddable
public class TranslatedEntity {
private Integer id;
}
@Entity
public class StoreRunId {
@Id
@Column(name = 'id')
public int id;
@Column(name = 'name')
public String name;
@Column(name = 'sequence')
public String sequence;
@Embedded
private TranslatedEntity pointer;
// standard getters, setters
}