当前位置:编程学习 > JAVA >>

问一个关于ibatis的resultMap的问题(属性ibatis和spring进来看看)

Pxzl.xml:
<resultMap id="pxzl" class="pxzl">
  <result property="disaTypeWmfDict" column="disaType" select="WmfDict.retrieve"/>
</resultMap>

WmfDict.xml:

总是提示 There is no statement named WmfDict.retrievein this SqlMap.

namespace,和sql-map-config 都配置了.

我把select改为本配置文件的里面的 已映射语句依旧是提示同样错误

在网上找到了可能的原因:

[ibatis]执行resultMap里配置的子select时,是否生成了新的connection

博客分类: 开源框架
iBATISSpringBean框架 
查询对象:一棵树状Bean 


环境:Spring Template + JdbcTransactionManager + ibatis 
发现: 
   1.执行树型查询时,ibatis中ExternalTransaction类曾多次执行connection.close()方法 
   2.Spring Template 生成的Transaction实例并不是ExternalTransaction,而是UserProvidedTransaction。看来Spring Template在执行一次查询的时候使用两种Transaction,一类由Spring模板维护,它的生命周期为整个session,一个session里只有一个;另一类用作具体的db request,每做一次query就生成一个 
   3. Spring Template 使用的 SqlMapExecutor是SqlMapSession,这个类还继承了SqlMapTransactionManager接口,使得每次执行查询后都会调用ExternalTransaction来关闭一下Connection   (SqlMapExecutorDelegate的autoEndTransaction()方法) 
    4. 不管有没有Spring Template,ibatis同一个session内的每个request都要用一个新的Connection! 也就是树型Bean千万不能用ibatis来做查询的框架!


有高手能帮忙解决一下吗? --------------------编程问答-------------------- --------------------编程问答--------------------
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,