JBPM3.2.2的BUG

JBPM3.2.2中的BUG,在3.2.2中 你是否遇到了Errors in named queries: GraphSession.findTokensForProcessInNode 這樣的錯誤?
請打開hibernate.queries.hbm.xml這個文件 查看這段代碼:
<query name="GraphSession.findTokensForProcessInNode">
<![CDATA[
select token
from org.jbpm.graph.exe.Token token
where token.processInstance.processDefinition.name = :processDefinitionName
and node.name = :nodeName
]]>
</query>
看到沒?
它node屬性缺少了對象了:應該將代碼改成:
<query name="GraphSession.findTokensForProcessInNode">
<![CDATA[
select token
from org.jbpm.graph.exe.Token token
where token.processInstance.processDefinition.name = :processDefinitionName
and token.node.name = :nodeName
]]>
</query>
你是否遇到否遇到了Errors in named queries: GraphSession.deleteJobsForProcessInstance。。。。這樣的錯誤
請將以下代碼:
<query name="GraphSession.deleteTaskInstancesById">
<![CDATA[
delete
from org.jbpm.taskmgmt.exe.TaskInstance t
where t.id in (:taskInstanceIds)
]]>
</query>
<query name="GraphSession.deleteJobsForProcessInstance">
<![CDATA[
delete from org.jbpm.job.Job job
where job.processInstance = :processInstance
]]>
</query>
<query name="JobSession.suspendJobs">
<![CDATA[
update org.jbpm.job.Job job
set job.isSuspended = true
where job.token = :token
]]>
</query>
<query name="JobSession.resumeJobs">
<![CDATA[
update org.jbpm.job.Job job
set job.isSuspended = false
where job.token = :token
]]>
</query>
<query name="JobSession.deleteTimersForProcessInstance">
<![CDATA[
delete from org.jbpm.job.Timer timer
where timer.processInstance = :processInstance
]]>
</query>
<query name="JobSession.deleteExecuteNodeJobsForProcessInstance">
<![CDATA[
delete from org.jbpm.job.ExecuteNodeJob executeNodeJob
where executeNodeJob.processInstance = :processInstance
]]>
</query>
改成:
<!-- ###################################################### -->
<query name="GraphSession.deleteTaskInstancesById">
<![CDATA[
delete
from org.jbpm.taskmgmt.exe.TaskInstance
where id in (:taskInstanceIds)
]]>
</query>
<query name="GraphSession.deleteJobsForProcessInstance">
<![CDATA[
delete from org.jbpm.job.Job
where processInstance = :processInstance
]]>
</query>
<query name="JobSession.suspendJobs">
<![CDATA[
update org.jbpm.job.Job
set isSuspended = true
where token = :token
]]>
</query>
<query name="JobSession.resumeJobs">
<![CDATA[
update org.jbpm.job.Job
set isSuspended = false
where token = :token
]]>
</query>
<query name="JobSession.deleteTimersForProcessInstance">
<![CDATA[
delete from org.jbpm.job.Timer
where processInstance = :processInstance
]]>
</query>
<query name="JobSession.deleteExecuteNodeJobsForProcessInstance">
<![CDATA[
delete from org.jbpm.job.ExecuteNodeJob
where processInstance = :processInstance
]]>
</query>
並在你的hibernateProperties屬性中將以下添加:
<prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章