代码之家  ›  专栏  ›  技术社区  ›  Forece85

使用hibernate保存嵌套的POJO类对象

  •  0
  • Forece85  · 技术社区  · 8 年前

    一级:

    int field2
    Class2 field1
    

    第二类:

    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
    
    }
    

    我在用弹簧靴。我将JPARepository扩展到我的回购接口。我想把一级存为分贝。我得到以下异常:

    嵌套异常是org.hibernate.type.SerializationException:could 不序列化。。。

    原因:org.hibernate.type.SerializationException:无法 序列化。。。。

    原因:java.io.NotSerializableException:com.model.Class3。。。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Cepr0    8 年前

    你应该创建嵌套类 @Embeddable :

    @Entity
    @Table(name = "my_entities")
    public class MyEntity {
        //...
    
        private MyData data;
    }
    
    @Embeddable
    public class MyData {
        private String value;
    }
    

    create table my_entities (
      -- MyEntity stuff
      --
      value varchar(255)
    );
    

    另一个有趣的方法是将嵌套类存储在DB中 JSON格式 ,请参阅我的相关 answer ...