我在测试 API 时遇到以下异常。使用java规范谓词连接jpa中的列
java.lang.StackOverflowError: null
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:125) ~[na:1.8.0_222]
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448) ~[na:1.8.0_222]
at java.lang.StringBuilder.append(StringBuilder.java:136) ~[na:1.8.0_222]
at java.util.SimpleTimeZone.toString(SimpleTimeZone.java:947) ~[na:1.8.0_222]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
at java.util.Calendar.toString(Calendar.java:3345) ~[na:1.8.0_222]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
at com.afcs.entity.TblWayBill.toString(TblWayBill.java:51) ~[classes/:na]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
at com.afcs.entity.TblTrip.toString(TblTrip.java:33) ~[classes/:na]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
at java.util.AbstractCollection.toString(AbstractCollection.java:462) ~[na:1.8.0_222]
at org.hibernate.collection.internal.PersistentBag.toString(PersistentBag.java:510) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
at com.afcs.entity.TblWayBill.toString(TblWayBill.java:51) ~[classes/:na]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
at com.afcs.entity.TblTrip.toString(TblTrip.java:33) ~[classes/:na]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
at java.util.AbstractCollection.toString(AbstractCollection.java:462) ~[na:1.8.0_222]
最佳答案
即使查看您的堆栈跟踪,我也可以看出您有一个递归 toString() 函数实现。您的对象 A.toString() 调用 B.toString(),而 B.toString() 又一次又一次地调用 A.toString()。通常,当您生成调用另一个实体的 toString 并且该实体调用另一个实体时,就会发生这种情况。确保从 toString() 方法实现中排除这些属性,它将按您的预期工作。
关于java - sts 中的 Stackoverflow 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57716347/