我从这种事情的多年痛苦中得到了一个提示:答案通常会仔细地隐藏在堆栈跟踪的前10行中的某个位置。始终多次读取堆栈跟踪,如果没有提供足够的帮助,请读取发生故障的方法的源代码。
在这种情况下,问题出在Hibernate漂亮打印机中的某个地方。这是一个日志记录功能,因此问题在于Hibernate试图记录一些巨大的字符串。请注意,在尝试增加StringBuilder的大小时它如何失败。
为什么要尝试记录巨大的字符串?我不能从您提供的信息中说出来,但是我想您的组织实体中有很大的内容(也许是BLOB吗?),Hibernate尝试记录查询已从数据库中拉出的对象。映射中也可能是错误的,因为渴望进行提取会拉入许多相关的对象-
例如,由于错误的外键定义,导致加载整个表的子集合。
如果映射错误,则修复映射将解决问题。否则,最好的选择是关闭此特定的日志记录功能。在一个非常相似的问题上存在一个现有的问题,答案中有一些有用的建议。



