使用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表达式。 |