`
Bluesnails
  • 浏览: 24510 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

仿照JbpmTemplate类写的方法,出现延迟加载问题,如何解决?

    博客分类:
  • JBPM
阅读更多


java 代码
  1. public ProcessDefinition getProcessDefinitionByInstance(final long processInstanceId) {   
  2.     return (ProcessDefinition) execute(new JbpmCallback() {   
  3.   
  4.         public Object doInJbpm(JbpmContext context) throws JbpmException {   
  5.             return context.getProcessInstance(processInstanceId).getProcessDefinition();   
  6.   
  7.         }   
  8.     });   
  9. }  


代码如上,根据流程实例ID,获得其所对应的流程定义对象。在调用此方法时,不能正确获得ProcessDefinition对象,抛出org.hibernate.LazyInitializationException异常。因为在execute方法中已经将JbpmContext对象关闭(同时关闭了Session对象),而Hibernate3中默认延迟加载,所以当使用获得的ProcessDefinition对象时才会去数据库取数据再实际生成对象。郁闷,总不能让我手动把所有mapping类的延迟加载都取消掉吧.....

分享到:
评论
2 楼 ppig 2008-05-27  
怎么说"因为在execute方法中已经将JbpmContext对象关闭",这个是spring-modules里的jbpmTemplate源码...
public Object execute(final JbpmCallback callback) {
final JbpmContext context = getContext();

try {
// use the hibernateTemplate is present and if needed
if (hibernateTemplate != null && hasPersistenceService) {

// use hibernate template
return hibernateTemplate.execute(new HibernateCallback() {
/**
* @see org.springframework.orm.hibernate3.HibernateCallback#doInHibernate(org.hibernate.Session)
*/
public Object doInHibernate(Session session) throws HibernateException, SQLException {
// inject the session in the context
context.setSession(session);
return callback.doInJbpm(context);
}
});
}

// plain callback invocation (no template w/ persistence)
return callback.doInJbpm(context);

}
catch (JbpmException ex) {
throw convertJbpmException(ex);
}
finally {
releaseContext(context);
}

}
1 楼 kayzhan 2008-02-26  
楼主,我遇到和你同样的问题,困扰我很久了,非常紧急啊!如果您已解决,请告诉下我方法!谢谢!

相关推荐

    仿照手机淘宝网站图片延时加载

    在移动互联网时代,为了优化网页性能和用户体验,"仿照手机淘宝网站图片延时加载"是一种常见的技术策略。淘宝作为电商巨头,其移动端应用在图片处理方面有着独特的优化方案,这种技术被称为“懒加载”(Lazy Loading...

    解决openlayers加载百度地图,坐标偏移,热力图渲染闪烁问题

    然后就去看了相关openlayers的文档,选择了6.15.1版本,然后仿照地震热力图例子写了代码,但是由于自带是OSM地图,不符合项目要求,所以研究了如何加载百度地图,又顺利踩坑坐标偏移问题。 问题1:openlayers默认...

    android仿照苹果加载对话框

    在Android开发中,为了提供与iOS类似的用户体验,有时我们需要创建一个仿照苹果风格的加载对话框。这种对话框通常在执行耗时操作如网络请求、数据处理或文件加载时显示,以告知用户系统正在进行工作,并且他们需要稍...

    ios-仿照豆瓣的CollectionView左边滑动加载更多.zip

    在“ios-仿照豆瓣的CollectionView左边滑动加载更多.zip”这个项目中,开发者试图模仿豆瓣App中的一个特性,即通过向左滑动CollectionView来加载更多的内容。这种设计模式通常被称为“无限滚动”或“上拉加载更多”...

    仿照谷歌图片搜索页面的图片懒加载浏览

    仿照淘宝搜索页面的图片懒加载,只加载可视的图片...

    android加载高清大图,仿照微博加载长图

    微博的长图加载机制优化了用户体验,避免了因为图片过大导致的内存溢出(OOM)问题,同时也保证了图片的流畅加载。下面将详细探讨如何在Android中实现这一功能。 首先,我们要理解Android中图片加载的基本流程。当...

    自制简单仿照京东商品分类

    开发者需要创建一个适配器类,继承自BaseAdapter,重写其中的方法,如`getView()`,以便将数据绑定到ListView的每一项视图上。 3. **UI设计**:界面设计应遵循用户友好原则,清晰展现各个分类层级。例如,一级分类...

    仿照windows记事本写的一个小程序

    在编程领域,仿照已有的应用程序进行二次开发是常见的学习方法。Windows记事本是一个简单但功能实用的文字编辑器,对于初学者来说,它是理解文本编辑器工作原理的好起点。这个小程序的目标是模仿Windows记事本的一些...

    仿照vc定时器,我自己封装的CppTimer定时器类

    我用C++封装的跨平台定时器类,CppTimer类。...注意:本类仿照vc的ontimer实现,如果是Windows的窗口应用程序项目,请先屏蔽掉dlg窗体基类自带的OnTimer方法后,在public继承CCppTimer类,来使用定时器。

    Android 仿照progress动态加载进度.zip

    "Android 仿照progress动态加载进度"这个项目主要展示了如何在Android应用中实现一个自定义的进度条,动态显示加载过程。下面将详细解释相关知识点。 首先,我们要理解Progress Bar的种类。在Android中,有两种基本...

    swift-iOS仿照百度贴吧的灌水加载效果

    "swift-iOS仿照百度贴吧的灌水加载效果"就是一个很好的示例,它展示了如何利用Swift编程语言和UIKit框架来实现一种类似百度贴吧的动态加载动画。这个项目名为XLTieBaLoading,它为开发者提供了一种实现波浪滚动加载...

    仿照美团加载网络数据时小人奔跑效果

    在这个类中,我们将重写`onDraw()`方法,用于绘制小人的各个帧,并通过`postInvalidate()`或`invalidate()`方法来触发重绘,从而实现动画的连续播放。 2. **帧动画原理**:小人奔跑动画实际上是一种帧动画,每一帧...

    安卓动画效果相关-android仿照美团正在加载的动画.rar

    这个压缩包"安卓动画效果相关-android仿照美团正在加载的动画.rar"显然包含了用于创建类似美团APP加载动画的资源和代码。这种动画通常是为了提供视觉反馈,让用户知道应用正在进行后台操作,如加载数据或处理请求。...

    swift-BaiduLoading一款仿照百度加载的简洁动画

    "swift-BaiduLoading"项目就是这样一个专为Swift开发者设计的开源库,它旨在实现一个仿照百度加载动画的简洁效果。这个动画库提供了一个优雅的方式,在应用加载数据或者进行其他后台操作时展示给用户,既具有视觉...

    仿照iBATIS手写持久层框架

    反射是Java提供的一种强大的动态类型功能,允许程序在运行时检查和操作类、接口、字段和方法。在持久层框架中,反射用于在运行时动态调用Java对象的方法和设置/获取属性值,这在处理结果集映射和参数绑定时非常有用...

    Android-仿照qq列表分类悬浮

    在Android应用开发中,"仿照qq列表分类悬浮"是一个常见的设计需求,它涉及到对QQ应用界面的模拟,特别是其列表展示方式和悬浮效果。这个主题主要关注的是使用ExpandableListView控件以及如何实现动态的悬浮分类效果...

    php仿照smarty模板类

    在实现这样一个模板类时,我们需要编写一个基础的类,包含上述功能的接口,并实现这些方法。例如,`Template`类可以有以下方法: ```php class Template { public function __construct($config = array()) { /* ...

    仿照Flexstroe3写的一个员工管理应用 (二)

    我们需要在`EmployeeStore`中实现加载和保存员工数据的函数,同时确保有适当的错误处理机制,以应对可能出现的网络问题。 至于压缩包中的“icecream”文件,可能是源代码文件或者项目的资源文件。由于信息有限,...

    自定义用于读取matlab数据的类,仿照pytorch设计

    这个名为"自定义用于读取matlab数据的类,仿照pytorch设计"的项目,旨在创建一个类,该类能够像PyTorch的`DataLoader`一样工作,但专门用于读取和处理MATLAB文件。下面将详细介绍这个类可能包含的功能和设计思路。 ...

    仿照昵图网写的前端页面

    【标题】"仿照昵图网写的前端页面" 涉及到的前端开发知识主要集中在构建一个类似于昵图网的用户界面,这通常需要掌握HTML、CSS和JavaScript等核心前端技术。以下是对这些关键知识点的详细解释: 1. **HTML...

Global site tag (gtag.js) - Google Analytics