【发布时间】:2021-05-27 22:04:00
【问题描述】:
我的数据库中有一个带有主复合键的表,当我使用 Hibernate 对其进行建模时,我使用 @EmbeddedId 和 @Embedable。此复合主键的一列生成的值为@GeneratedValue(strategy = GenerationType.IDENTITY)。
当我尝试在我的数据库中创建两个新对象时,出现如下错误:
org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [MyPackage#MyEmbedableClass [MyGeneratedPrimaryKeyValue=null, OtherPrimaryKey=21]]
但是当我查看我的数据库时,我的对象已经创建好了。我不明白我的错误,我不知道如何解决我的问题。
我找到了一些类似我的主题,但我还没有找到我的问题的答案。
@Entity(name = "Certification")
@Table(name = "CERTIFICATION")
public class Certification implements Serializable {
static final long serialVersionUID = -4399907743392740963L;
@EmbeddedId
private CertificationPK certificationPK;
// Others variables
// constructors
// Getter / Setter
// toString
// hashCode / equals
}
@Embeddable
public class CertificationPK implements Serializable {
private static final long serialVersionUID = 1433990897506209802L;
// MyGeneratedPrimaryKeyValue=null when I create
@GeneratedValue(strategy = GenerationType.IDENTITY)
@NotNull
@Column(name = "CERTIFICATION_ID")
private Integer certificationId;
// Other variable
// constructors
// Getter / Setter
// toString
// hashCode / equals
}
提前感谢您的帮助。
【问题讨论】:
-
请出示您的地图。
-
@SternK 映射是什么意思?
-
当我使用 Hibernate 对其进行建模时,我使用 @EmbeddedId 和 @Embedable - 请展示您如何对其进行建模
-
@SternK 我更新了我的帖子,如果您需要更多我可以添加。
标签: hibernate primary-key composite auto-generate