hibernate进行一对多或者多对一进行查询时,程序会报出如下
java.lang.StackOverflowError
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:675)
at java.lang.StringBuilder.append(StringBuilder.java:208)
at com.qidi.Customer.toString(Customer.java:21)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at com.qidi.Con_person.toString(Con_person.java:25)
at java.lang.String.valueOf(String.java:2994)
最主要看这个:
java.lang.StackOverflowError
报错的原因是内存泄漏的问题。产生的原因在于你在生成tostring方法的时候,使用了默认方法。
就比如我出现下面的错误:
在图片中我使用到用集合的方法存多的一方Con_person类,然后生成的tostring方法中就有用到linkmans这个实体类对象,而我们进行查询的时候就包含到linkmans实体类对象没有被tostring所涵盖,故造成内存泄漏的问题。
解决方法:
就比如我的例子:
在tostring方法中,把关于集合的实体类对象,即linkMans去掉即可