Spring Data JPA报错java.lang.StackOverflowError

报错信息

1
2
3
4
5
java.lang.StackOverflowError: null,   
at com.zangland.study.jpa.entity.BookDetail.hashCode(BookDetail.java:17) ~[classes/:na]
at com.zangland.study.jpa.entity.Book.hashCode(Book.java:16) ~[classes/:na]
at com.zangland.study.jpa.entity.BookDetail.hashCode(BookDetail.java:17) ~[classes/:na]
at com.zangland.study.jpa.entity.Book.hashCode(Book.java:16) ~[classes/:na]

原因是使用Lombok注解,实体bean会生成全参的toString方法,如果实体bean存在关联关系,便造成死循环。

在实体bean上加上注解

1
@ToString(exclude={"store"})

忽略不想在toString方法输出的字段便解决。