ibatis确实相当的优秀,跟hibernate的比较就不说了,容易引起口水。我是用了几年hibernate,后来转向ibatis,感觉是各有优缺点,只是自认sql功底比hql好,就懒得用hibernate了。
一路用来顺风顺水,前些时碰到一个挠头的问题,当映射的对象层次超过4层时,会映射不上,如下:
<resultMap id="examUserPaperQTQRM" class="examUserPaperQTQ" extends="baseRM">
<result column="quesType_name" property="paperQTQ.question.quesType.name" jdbcType="CHAR" />
</resultMap>
对象层次如下:对象examUserPaperQTQ有paperQTQ对象属性,而paperQTQ对象有question对象属性,而question有quesType对象属性,而quesType有name属性,层次稍微深了点,没办法,多表关联。
为了避免N+1的问题,就写了以上映射,结果映射失败,quesType的name属性为null,测试了几遍,层次在3层以内,一切正常。看来ibatis是有点bug,本来想去看看源代码,整明白点。时间很紧,懒得去理。不过我用的是ibatis2.3版本,现在都改名mybatis了,3.0以上了,不过懒得换了,无数的经验告诉我,盲目跟风刷新版本,往往得不偿失,没时间去折腾,boss整天盯着。
问题出现了,解决一下吧,用定义一个resultMap如下:
<resultMap id="quesTypeRM" class="quesType" >
<result column="quesTypeId" property="quesTypeId" jdbcType="CHAR" />
<result column="name" property="name" jdbcType="CHAR" />
<result column="quesTypeTempl" property="quesTypeTempl" jdbcType="TINYINT" />
</resultMap>
然后使用:
<resultMap id="examUserPaperQTQRM" class="examUserPaperQTQ" extends="baseRM">
<result property="paperQTQ.question.quesType" resultMap="quesTypeRM" />
</resultMap>
这样子可以映射进去了。
是不是bug还不是太敢确定,有大拿出没的话,望不吝赐教!
分享到:
相关推荐
iBATIS-SqlMaps,ibatis映射文件
ibatis配置文件、映射文件详解.doc
ibatis 一对多关系映射 ibatis 一对多关系映射ibatis 一对多关系映射
ibatis SQL映射文件、DAO、model自动生成工具源码 1.没有注释,生成的代码非常简单,不像其他自动生成工具生成一大堆无用的东西 2.配置简单,只需配置表明,数据库连接,生成的路径即可
ibatis映射文件信息,接口对应,持久层管理
此文本主要是关于ibatis总配置和映射配置和一些需要主要的细节。
Ibatis一对一映射提示,需要学习的同学请关注,谢谢。
NULL 博文链接:https://self4j.iteye.com/blog/905464
功能:当你建立好数据库,写好javabean,就可以用这个工具来为你的javabean和数据库之间做一个映射. 当然这个映射只是一个大致的模板,很多时候你可能要稍做修改.但是也为你节约了很多的时间. <br>使用方法: 1....
ibatis 用HashMap解决Ibatis未知列名和列数的查询结果的resultClass映射
ibatis 相关使用文档及安装包ibatis 相关使用文档及安装包
NULL 博文链接:https://self4j.iteye.com/blog/906319
ibatis学习 ibatis总结 ibatis ibatis ibatis
ibatis配置文件、映射文件详解,里面详细介绍了ibatis的配置文件以及映射文件的详细解释,通过这你能很好的了解ibatis配置文件以及映射文件的含义。。。
在网上下的eclipse abator插件自感觉不好用, 自已写了一个 基于oracle的,支持生成序列,pojo ...四个基本方法,增删改查, 写的时候基于oracle11的,低版本的可能在到得字段注释 的地方会不兼容,自已改改或不加注释就可以了
ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料
关于ibatis的配置和映射 这里的配置文件和映射文件是从网上收集的集合 适合初学的人
ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南
ibatis demo,ibatis例子,ibatis示例
myibatis 生成oracle 对应映射文件