SpringDataJpa在一對多、多對多關系映射時出現StackOverflowError


在使用spring-data-jpa時,進行一對多配置后,在調用save方法時,出現內存溢出。

   產生原因一:為了方便看信息,在兩類中分別重寫了 toString 方法,導致查詢加載時兩類在互相調用對方的toString,形成遞歸,造成內存溢出。

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

  產生原因二: 使用了 lombok 插件中的@Data以及@ToString注解來標注實體類,讓 lombok 來代替生成 gettet/setter 以及 toString,但是 lombok 在生成時會出現循環比較兩類中的 hashcode,導致內存溢出。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM