ibatis的result标签中用select详解


原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://zorro.blog.51cto.com/2139862/821777
 
< resultMap id ="usermoduleprivilege"
     class ="com.webex.webapp.l10n.common.pojo.UserModulePrivilege" >
     < result property ="projectId" column ="projectid" nullValue="" />
     < result property ="userId" column ="userid" nullValue ="0" />
     < result property ="userName" column ="username" nullValue="" />
     < result property ="firstName" column ="firstname" nullValue="" />
     < result property ="lastName" column ="lastname" nullValue="" />
     < result property ="modulePrivilege"
       column ="{userId=userid, projectId=projectid}"
       select ="findassignedusermoduleprivilege" />
   </ resultMap >
 
< select id ="findassignedusermoduleprivilege"
     resultMap ="moduleprivilege" cacheModel ="Project-cache" >
    select t.projectid,m.moduleid,m.modulename,t.status,t.privilege from
    wbxl10nprojectprivilege t,wbxl10nmodule m where
    t.moduleid=m.moduleid and t.userid=#userId# and
    t.projectid=#projectId#
   </ select >
 
< select id ="findassigneduserprivilege"
     resultMap ="usermoduleprivilege" >
    select
    distinct(u.userid),p.projectid,u.username,u.firstName,u.lastName
    from wbxl10nproject p ,wbxl10nprojectprivilege t,wbxl10nuser u
    where t.userid=u.userid and t.projectid=p.projectid and
    t.projectid=#projectId#
   </ select >
由此可看出,在ibatis的resultMap的result中使用“select”是一种迭代查询,也就是例子中 < result property ="modulePrivilege"
column ="{userId=userid, projectId=projectid}"
select ="findassignedusermoduleprivilege" />  将column指定的一项或多项作为参数( userId=userid, projectId=projectid),传入并执行指定的select语句( findassignedusermoduleprivilege),并将查询结果赋给 property ="modulePrivilege"

本文出自 “左罗CTO” 博客,请务必保留此出处http://zorro.blog.51cto.com/2139862/821777


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM