当我尝试使用 JSON-Struts2 插件序列化对象时,我遇到了 JPA 的一个大问题。
我有下一个例外:
异常描述:尝试使用具有空会话的间接遍历关系。这通常发生在具有未实例化 LAZY 关系的实体被序列化并且在序列化之后遍历该惰性关系时。为避免此问题,请在序列化之前实例化 LAZY 关系。
这是因为某些参数是列表,而这些列表具有其他列表的对象..
有一种方法可以在不修改对象外观的情况下初始化所有列表?...或其他选项.. 仅使用 JSON 序列化一些参数
您可以使用Hibernate.isInitialized和Hibernate.initialize检查是否发生了初始化或强制初始化。
您可以排除 struts-json-plugin 中的参数。请参阅http://struts.apache.org/2.x/docs/json-plugin.html#JSONPlugin-Excludingproperties
顺便说一句,如果您要使用 Hibernate#initialize 方法:
注意:这只确保代理对象或集合的初始化;不能保证集合内的元素将被初始化/物化。
使用字符串列表而不是整个对象解决