【发布时间】:2016-07-02 07:00:21
【问题描述】:
我正在尝试一些休眠。以下是我正在使用的pojo,
@Entity
@Table(name = "person")
public class Person {
@Id
@GeneratedValue
@Column(name = "person_id")
private long person_id;
@Column(name = "name")
private String name;
@Column(name = "Address")
private String Address;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "person" )
private Set<Phone> phone;
//Getters ande Setters
}
@Entity
@Table(name = "phone")
public class Phone{
@Id
@GeneratedValue
@Column(name = "phone_id")
private long phone_id;
@Column(name = "name")
private String name;
@ManyToOne(cascade = CascadeType.MERGE,fetch = FetchType.EAGER)
@JoinColumn(name = "person_id")
private Person person ;
//Getters ande Setters
}
我想要的是当我从人那里获取记录并需要相应的所有电话详细信息时。 (如 Select * from person)我个人有大约 1360 条数据,电话中的数据几乎翻了一番。但是由于某种原因会引发错误。我看不到完整的错误堆栈。以下是我遇到的错误。
在 com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:505) ~[jackson-databind-2.4.6.jar:2.4.6] 在 com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:639) ~[jackson-databind-2.4.6.jar:2.4.6] 在 com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152) ~[jackson-databind-2.4.6.jar:2.4.6] 在 com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:505) ~[jackson-databind-2.4.6.jar:2.4.6] 在 com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:639) ~[jackson-databind-2.4.6.jar:2.4.6] 在 com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152) ~[jackson-databind-2.4.6.jar:2.4.6] 在 com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:117) ~[jackson-databind-2.4.6.jar:2.4.6] 在 com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:23) ~[jackson-databind-2.4.6.jar:2.4.6] 在 .....
我无法发布我遇到的所有错误
【问题讨论】:
-
这部分错误日志没用。我们需要错误日志的第一部分来提供帮助
-
在序列化您的对象时似乎发生了stackoverflow异常,人与人之间的关系以及电话与人的关系导致无限循环
-
是的,即使我也这么认为。但是为什么会发生。我的方法正确吗?
-
这与休眠无关,它的根源是杰克逊。
-
那我现在能做什么?
标签: java spring hibernate jackson