防止LAZY关系异常

时间:2012-10-13 18:24:23

标签: java json struts2

当我尝试使用JSON-Struts2插件序列化对象时,我遇到了一个很大的问题。

我有下一个例外:

  

异常描述:尝试使用具有空会话的间接遍历关系。当序列化具有未实例化的LAZY关系的实体并且在序列化后遍历延迟关系时,通常会发生这种情况。要避免此问题,请在序列化之前实例化LAZY关系。

这是因为某些参数是列表,而这些列表包含其他列表的对象..

有一种方法可以在不修改对象外观的情况下对所有列表进行初始化吗?...或其他选项..仅使用JSON序列化一些参数

3 个答案:

答案 0 :(得分:2)

您可以检查初始化是否发生,或使用Hibernate.isInitializedHibernate.initialize强制初始化。

答案 1 :(得分:2)

您可以在struts-json-plugin中排除参数。见http://struts.apache.org/2.x/docs/json-plugin.html#JSONPlugin-Excludingproperties

顺便说一句,如果你打算使用Hibernate #initialize方法:

  

注意:这只能确保代理对象或集合的初始化;不保证集合中的元素将被初始化/具体化。

答案 2 :(得分:0)

使用字符串列表解决整个对象