【发布时间】:2018-10-31 13:35:40
【问题描述】:
java.lang.StackOverflowError: null
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:708)
这是我在使用 Find Method 时遇到的异常。 我正在使用 Spring Boot JPA 存储库。
@Entity
@Table(name="存储") 公共类 StoreEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long store_id;
private String storeDescription;
private String storeName;
private String lattitude;
private String longitude;
private boolean isActive;
private boolean is247;
private Date createdDate;
private Date lastModifiedBy;
@OneToMany(mappedBy = "store", cascade = CascadeType.ALL)
@JsonIgnoreProperties(value ="store", allowSetters=true)
private Set<GroceryItemEntity> groceryItem;
@Table(name ="杂货店") 公共类 GroceryItemEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long grocery_id;
private String name;
private String description;
private double price;
private boolean isActive;
private Date createdDate;
private Date lastModifiedBy;
@ManyToOne(cascade = CascadeType.ALL )
@JoinColumn(name = "store_id")
@JsonIgnoreProperties(value ="groceryItem", allowSetters=true)
private StoreEntity store;
部分例外
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:708)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
【问题讨论】:
-
很好的例外。现在它需要一个问题和一些代码才能成为有价值的帖子。
-
@TheHeadRush 请检查代码。
-
哪种查找方法?
-
FindAll() 或 findOne(id) 的 jpa 存储库
-
在尝试序列化时遇到无限递归问题 - 每个
StoreEntity都引用一组GroceryItemEntity实例,反之亦然。Jackson提供了一组注释(@JsonIgnore、@JsonIgnoreProperties和@JsonManagedReference/@JsonBackReference)在各种用例中解决此问题。您只需要评估并找出最能满足您需求的一种。
标签: hibernate spring-boot jackson spring-data-jpa spring-rest