在使用spring-data-jpa時,進行一對多配置后,在調用save方法時,出現內存溢出。
產生原因一:為了方便看信息,在兩類中分別重寫了 toString 方法,導致查詢加載時兩類在互相調用對方的toString,形成遞歸,造成內存溢出。
解決方案: 在 toString 方法中任意一方去除打印的對方信息。
產生原因二: 使用了 lombok 插件中的@Data以及@ToString注解來標注實體類,讓 lombok 來代替生成 gettet/setter 以及 toString,但是 lombok 在生成時會出現循環比較兩類中的 hashcode,導致內存溢出。
解決方案: 不要使用 lombok ,自己手寫。 不要使用@Data,使用@Getter和@Setter代替