spring mvc出现java.lang.StackOverflowError错误
问题描述
环境框架是springmvc + jackson + hibernate
在查询数据多对一数据是出现StackOverflowError错误
前端返回数据是
com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 207477 path
解决思路
通过调试发现,返回前端数据有几十万个字符(json),那肯定会爆栈溢出错误。最后发现jackson 有一个返回的数据为hibernate的映射实体对象。那问题就在这了,hibernate对象还没有断开,返回给前端的会不断的去拿跟深层关系里的数据。原因就是这个死递归,造成数据过大,最后爆了
解决方案
hibernate查询出来的映射对象不直接返回给前端。在外面new一个新的对象重新包装一遍就可以了
~~~~~~~~~~~~~~~~完结撒花~~~~~~~~~~~~~~~~~~~~