int field2
Class2 field1
Class3 field3
String field4
String field5
@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。我收到以下异常消息:
org.springframework.orm.jpa.JpaSystemException:无法序列化; 嵌套的异常是org.hibernate.type.SerializationException:可以 没有序列化...
由以下原因引起:org.hibernate.type.SerializationException:无法 序列化....
原因:java.io.NotSerializableException:com.model.Class3 ...
尝试了@ElementCollection但没有用。请帮忙。
答案 0 :(得分:0)
您应该创建嵌套类@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)
);
另一种有趣的方法是将嵌套类作为 JSON 存储在数据库中,请参见我相关的answer ...