为了账号安全,请及时绑定邮箱和手机立即绑定

使用休眠保存嵌套的 POJO 类对象

使用休眠保存嵌套的 POJO 类对象

喵喵时光机 2021-07-08 18:01:27
类1:int field2Class2 field1类2:Class3 field3第3类:String field4String field5Class1 域类:@Table(name = "class1_details")@Entitypublic class Class1Details {  @Id    @GeneratedValue(strategy = GenerationType.AUTO)    @Column(name = "id")    private long id;        @Column(name = "class2_fields")    private Class2 fields;       // respective getters and setters}我正在使用 springboot。我正在为我的 repo 接口扩展 JPARepository。我想将 class1 保存在 db 中。我得到以下异常:org.springframework.orm.jpa.JpaSystemException: 无法序列化;嵌套异常是 org.hibernate.type.SerializationException: could not serialize ...引起:org.hibernate.type.SerializationException:无法序列化......引起:java.io.NotSerializableException:com.model.Class3 ...试过@ElementCollection 但没有用。请帮忙解决这个问题。
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

您应该创建嵌套类@Embeddable:


@Entity

@Table(name = "my_entities")

public class MyEntity {

    //...


    private MyData data;

}


@Embeddable

public class MyData {

    private String value;

}

然后Hibernate会处理下表:


create table my_entities (

  -- MyEntity stuff

  --

  value varchar(255)

);

另一个有趣的方法是将 DB 中的嵌套类存储为JSON,请参阅我的相关答案...


查看完整回答
反对 回复 2021-07-14
  • 1 回答
  • 0 关注
  • 191 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信