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

类1:

int field2

Class2 field1

类2:

Class3 field3

第3类:

String field4

String field5

Class1 域类:

@Table(name = "class1_details")

@Entity

public 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 但没有用。请帮忙解决这个问题。


喵喵时光机
浏览 192回答 1
1回答

慕田峪7331174

您应该创建嵌套类@Embeddable:@Entity@Table(name = "my_entities")public class MyEntity {    //...    private MyData data;}@Embeddablepublic class MyData {    private String value;}然后Hibernate会处理下表:create table my_entities (  -- MyEntity stuff  --  value varchar(255));另一个有趣的方法是将 DB 中的嵌套类存储为JSON,请参阅我的相关答案...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java