task.setAssignee("AAA");报错;LazyInitializationException: could not initialize pro

成長中的丫頭 2012-08-09
任务可能指定一个或者多个人员,所以使用了candidate-users属性,流程定义如下:
<task candidate-users="#{drafter}" name="拟票" g="100,70,50,30">


根据具体情况给变量赋值即可,目前的问题是:当变量drafter只是一个人A,而非多个人的时候想直接将A弄成assignee,而不是候选人,目的是为了区分个人任务跟组任务,使用candidate-users的话就算一个人查personal的也是查不到,必须查group的。

客户端是想一个人的话就直接是个人任务,不在组任务出现,这样的话,我就没办法实现这个目的了。

想到的解决方案,比如:当完成“拟票”的前一个任务时,如果是一个人的话直接将这个人设置成assignee:
Task t=taskService.createTaskQuery().executionId("switch.1070001").uniqueResult();
		System.out.println("CIWFServerImpl.takeTask()"+t);
		System.out.println("CIWFServerImpl.takeTask()"+t.getActivityName());
t.setName("xxx");
		t.setAssignee("aaa");

		taskService.saveTask(t);
		System.out.println("CIWFServerImpl.takeTask()"+t.getAssignee());


t.setAssignee("aaa");就报错了,前一句t.setName("xxx");就没问题呢,看了点源代码也没看出这两个有什么不同的地方,于是迫于无奈修改了jbpm.jar里面的task.hbm.xml文件:

<property name="assignee" column="ASSIGNEE_" lazy="false"/>


无效,为什么我不能修改assignee呢?

报的错误;严重: could not initialize proxy - no Session
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
laoma036912 2012-08-29
将Task强制转换成TaskImpl,然后setAssignee("aaa");试试看!
成長中的丫頭 2012-08-30
laoma036912 写道
将Task强制转换成TaskImpl,然后setAssignee("aaa");试试看!

还是不行啊,不晓得问题在那里啊,求指点啊
成長中的丫頭 2012-08-30
http://jbpm.group.iteye.com/group/topic/23716 后来人请参考
Global site tag (gtag.js) - Google Analytics