原生sql:
select
A.ID_ ,
A.NAME_,
B.NAME_
from jbpm_task A
inner join jbpm_processdefinition B on(A.PROCESSDEFINITION_=B.ID_)
order by B.NAME_
这个项目错误很隐蔽所以写出来警醒自己,这个sql在外围执行很成功,但是NAME出现了重名,导致查询出来的列段覆盖。
SQL独立查询:
结果:
1 发文 CAAAForSendDoc
2 主任阅示 CAAAForSendDoc
3 领导审核 CAAAForSendDoc
4 办理 CAAAForSendDoc
但是使用Hibernate查询
打印结果是:
1 发文 发文
2 主任阅示 主任阅示
3 领导审核 领导审核
4 办理 办理
修改如下:
<sql-query name="GetTasksDef">
<return-scalar column="ID" type="long"/>
<return-scalar column="TASKNAME" type="string"/>
<return-scalar column="WFNAME" type="string"/>
<![CDATA[
select
A.ID_ as ID,
A.NAME_ as TASKNAME,
B.NAME_ as WFNAME
from jbpm_task A
inner join jbpm_processdefinition B on(A.PROCESSDEFINITION_=B.ID_)
order by B.NAME_
]]>
</sql-query>
使用Hibernate别名调用即可正确。