我正在使用JSF 控制器 bean,我从实体获取一些惰性集合。
我打开UserTransaction
,获取所有惰性集合并提交UserTransaction
。
这是奇怪的事情。当我进入页面时,它会给出一个懒惰的初始化异常但是当我调试它并在调试屏幕中检查集合时(通过选择集合并在“变量”部分中查看它)它不会出错并且一切正常!!!!
这是什么魔法?
编辑:我理解调试器初始化集合但是如果我手动执行Hibernate.initialize(theCollection)方法它会给我一个错误'没有活动会话'编辑2:我设法修复它,现在我有了这个问题,为什么这样做:
this.completedObjectives = user.getCompletedObjectives();
this.unlockedEntitlements = user.getUnlockedEntitlements();
Hibernate.initialize(this.completedObjectives);
Hibernate.initialize(this.unlockedEntitlements);
但这不是:
Hibernate.initialize(user.getCompletedObjectives());
Hibernate.initialize(user.getUnlockedEntitlements());
this.completedObjectives = user.getCompletedObjectives();
this.unlockedEntitlements = user.getUnlockedEntitlements();