我有两个简单的实体:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
}
@Entity
public class Address {
@Id
@OneToOne
@JoinColumn(name = "FK")
User user;
}当我运行我的Spring Boot应用程序时,我得到以下错误:
org.hibernate.MappingException: Composite-id class must implement Serializable: Address但是这些实体几乎与JPA Spec中的实体相同( 2.4.1节,示例4)。出于某种原因,Hibernate认为user属性是一个复合id。
我做错了什么?
发布于 2021-02-10 17:44:03
我建议您以这种方式更正您的映射:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
}
@Entity
public class Address {
@Id
Long id;
@MapsId
@OneToOne
@JoinColumn(name = "FK")
User user;
}另请参阅hibernate文档的this section。
https://stackoverflow.com/questions/66128118
复制相似问题