使用findExecutionById()的疑问

LieZueYang 2010-03-19
如题, 我用JBPM4.3跟SSH做了一个例子,在调用 findExecutionById()时,我记得传入的参数是 task.getExecutionId(),而Hibernate确报类型异常,   然后我找到这个文件jbpm.execution.hbm.xml, 找到它的HQL:
select execution from org.jbpm.pvm.internal.model.ExecutionImpl as execution where execution.id = :id

<property name="id" column="ID_" unique="true" />

而我查看它最终的SQL语句的时候它的  execution.id确变成了 execution.DBID(主键),

   难道那个execution.id 不是指属性里面的id ??
LieZueYang 2010-03-19
我这里的task.getExecutionId()内容是 流程name+id组成的 是一个字符串
xyz20003 2010-03-19
dbid_为数据库主键,Long型
id_为流程实例主键,String型。

如果生成出现了错误,很可能因为使用了错误的hbm.xml配置文件。请仔细排查
LieZueYang 2010-03-19
下载的是官方的jbpm4.3,检查过src和jbpm.jar里的hbm.xml都是一样的。

我想在想知道那个HQL里的 execution.id 指的是不是 <property name="id" column="ID_" unique="true" /> ,如果是, 那为何最终的SQL确是 DBID?

难道hibernate会把名字为id的属性当前主键?
xyz20003 2010-03-19
execution.getId()就是<property name="id" column="ID_" unique="true" /> 。

hibernate不会把id当做主键,目前接触过的几个项目中使用jbpm4都没有出现这种问题,所以怀疑是你的配置环境有错。

如果确实找不到原因,那么建议重新建造一个干净的开发环境,重新配置测试。
LieZueYang 2010-03-19
哦,那我再看看, 多谢了, 有问题再请教
LieZueYang 2010-03-19
我刚刚新建了一个项目,用的是myeclipse自动生成的Hibernate3.1, 然后使用的HQL还是那个,报的错也是一样, 但是我把<property name="id" column="ID_" unique="true" />改成<property name="id2" column="ID_" unique="true" />  确可以正确识别到这个字段,  另外我又新建了一张表,结果还是一样,  请问这能说明什么问题?  hibernate正会把名字为id的属性当成 主键来用?
xyz20003 2010-03-19
你可以看一下我们提供的jbpm4视频教程
www.family168.com/jbpm4/video.html
卡拉阿风 2010-03-19
xyz20003 写道
你可以看一下我们提供的jbpm4视频教程
www.family168.com/jbpm4/video.html

临远大哥,教程里request.jsp中
<input type="hidden" name="taskId" value="${param.id}">
我想知道${param.id}这个是在哪里赋值的?
xyz20003 2010-03-19
xxxx.jsp?id=xxx

可以参考jsp-2.0支持的el表达式。
Global site tag (gtag.js) - Google Analytics