jbpm4中不使用Spring, LazyInitializationException的处理
在使用jbpm4时, 如果没用应用spring框架, 就会经常出现LazyInitializationException.<init>:42 | could not initialize proxy - no Session 这个异常, 其实, 这个主要是hibernate懒加载造成的
解决方案一般有以下方式,
1.在相应的配置文件中配置lazy="false"
2. 在需要之前,采用Hibernate.initialize()事先加载
3. 自己写拦截器处理.
对于1,这个是很好处理的, 这里就不说了.
对于3. 这个我暂时还写不好..
, 这个应该是和spring中的那个OpenSessionInViewFilter类似的.
对于2, 这里就给个简单的例子来做说明
比如说想, 通过historyActivityInstanceQuery得到HistoryTaskInstanceImpl,再由HistoryTaskInstanceImpl得到HistoryTask.
如果直接获取, 就会报LazyInitializationException异常.
可以通过以下方式获得
ListLoadImmediately.java1 楼 kuwan 2010-01-28 博主,jbpm4中流程实例结束后的变量没有存入历史变量表里,请教有什么方法可以写入历史表 2 楼 sundoctor 2010-04-09 照着做了一下,processEngine.get(CommandService.class)为null,报空指针错误,不知何解,我用的版本4.3 3 楼 sundoctor 2010-04-09 找到解决方法了,不用processEngine.get(CommandService.class),用HistoryServiceImpl.getCommandService()获取就可以。