首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@OneToOne with @Id: Composite id类必须实现Serializable

@OneToOne with @Id: Composite id类必须实现Serializable
EN

Stack Overflow用户
提问于 2021-02-10 06:23:58
回答 1查看 182关注 0票数 1

我有两个简单的实体:

代码语言:javascript
复制
@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id;
}

@Entity
public class Address {

    @Id
    @OneToOne
    @JoinColumn(name = "FK")
    User user;
}

当我运行我的Spring Boot应用程序时,我得到以下错误:

代码语言:javascript
复制
org.hibernate.MappingException: Composite-id class must implement Serializable: Address

但是这些实体几乎与JPA Spec中的实体相同( 2.4.1节,示例4)。出于某种原因,Hibernate认为user属性是一个复合id。

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2021-02-10 17:44:03

我建议您以这种方式更正您的映射:

代码语言:javascript
复制
@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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66128118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档