SpringDataJpa在一对多、多对多关系映射时出现StackOverflowError

转载自: https://www.cnblogs.com/ymqj520/archive/2019/08/19/11378280.html

所有使用关联注解的类里要重写 toString 方法,返回null或者只有字段信息

在使用spring-data-jpa时,进行一对多配置后,在调用save方法时,出现内存溢出。

   产生原因一:为了方便看信息,在两类中分别重写了 toString 方法,导致查询加载时两类在互相调用对方的toString,形成递归,造成内存溢出。

   解决方案: 在 toString 方法中任意一方去除打印的对方信息。

  产生原因二: 使用了 lombok 插件中的@Data以及@ToString注解来标注实体类,让 lombok 来代替生成 gettet/setter 以及 toString,但是 lombok 在生成时会出现循环比较两类中的 hashcode,导致内存溢出。

  解决方案: 不要使用 lombok ,自己手写。 不要使用@Data,使用@Getter和@Setter代替

原文地址:https://www.cnblogs.com/betx/p/12613543.html