Hibernate 如何在@Embeddeble中使用@GeneratedValue作为复合主键?
我的数据库中有一个带有主复合键的表,当我使用Hibernate对其建模时,我使用Hibernate 如何在@Embeddeble中使用@GeneratedValue作为复合主键?,hibernate,primary-key,composite,auto-generate,Hibernate,Primary Key,Composite,Auto Generate,我的数据库中有一个带有主复合键的表,当我使用Hibernate对其建模时,我使用@EmbeddedId&@embeddedable。此复合主键的一列的生成值为@GeneratedValue(strategy=GenerationType.IDENTITY) 当我尝试在数据库中创建两个新对象时,出现如下错误: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was a
@EmbeddedId
&@embeddedable
。此复合主键的一列的生成值为@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]]
但当我查看数据库时,我的对象已经创建。我不理解我的错误,也不知道如何解决我的问题
我已经找到了一些类似我的话题,但我还没有找到我问题的答案
@实体(name=“认证”)
@表(name=“认证”)
公共类认证实现可序列化{
静态最终长SerialVersionId=-43990774392740963L;
@嵌入ID
私人证书pk CertificationPK;
//其他变量
//建设者
//吸气剂/塞特
//托斯特林
//hashCode/equals
}
@可嵌入
公共类CertificationPK实现可序列化{
私有静态最终长serialVersionUID=1433990897506209802L;
//创建时MyGeneratedPrimaryKeyValue=null
@GeneratedValue(策略=GenerationType.IDENTITY)
@NotNull
@列(name=“CERTIFICATION\u ID”)
私有整数证书ID;
//其他变量
//建设者
//吸气剂/塞特
//托斯特林
//hashCode/equals
}
提前感谢你的帮助
@GeneratedValue
与@EmbeddedId
一起使用。你可以在中找到一些解决方法,但对我来说效果不太好
@GeneratedValue
与@IdClass
一起使用。但是,由于以下原因,它不起作用
@Generated
、@CreationTimestamp
或@ValueGenerationType
或数据库生成的值
尽管如此,您仍然可以在构造复合标识符之前生成标识符属性
请显示您的映射。@SternK映射是什么意思?当我使用Hibernate对其建模时,我使用@EmbeddedId&@Embeddeble-请显示您是如何建模的it@SternK我更新了我的帖子,如果你需要更多我可以添加。谢谢你的帮助和纠正!