如何在同一会话中为具有@Id注释的字段插入重复值



以下是代码:

@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
}

最新更新