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一个新的对象重新包装一遍就可以了

~~~~~~~~~~~~~~~~完结撒花~~~~~~~~~~~~~~~~~~~~

posted @ 2016-12-14 17:47  keivnyau  阅读(431)  评论(0编辑  收藏  举报