您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> ibatis一对多关联查询,为什么子查询没执行

ibatis一对多关联查询,为什么子查询没执行

来源:网络整理     时间:2016/7/2 1:12:46     关键词:

关于网友提出的“ ibatis一对多关联查询,为什么子查询没执行”问题疑问,本网通过在网上对“ ibatis一对多关联查询,为什么子查询没执行”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: ibatis一对多关联查询,为什么子查询没执行
描述:

ibatis一对多关联查询,为什么子查询没执行
详细如下:
店铺(shop)与买家(buyer)为多对对关系,中间关系表(shop_buyer)
现在查询买家,需要包含该买家所有关联的店铺,查询的结果集:resultMap:buyerResult












   根据买家ID通过关系表查询店铺信息的子查询:

select s.sid,s.short_title,s.title,s.nick from `shop` s, `shop_buyer` sb where s.sid=sb.sid 
and sb.bid = #bid#

执行后buyerResult结果集中其他的数据都有,只有shops属性没有数据,当setShops时总报NullPointerException错误
log4j中也没有发现执行Buyer.selectShopByBid的sql语句,为什么会这样


解决方案1:

 
这样的查询每次只能返回一个值,如果是多个值同时返回的话就得不到值,而且这种查询效率很低.
建议使用三表关联来检索数据.
select b.*,s.* from buyer as b
join
shop_buyer as sb
on sb.关联字段=a.关联字段
join
shop as s
on s.关联字段=sb.关联字段
where 条件

解决方案2:

 
select="Buyer.selectShopByBid"  这个是不是不应该写在resultMap下面,而是写在select 下面啊? 

解决方案3:

sql中的字段和SqlMap中的没有对上吧。


以上介绍了“ ibatis一对多关联查询,为什么子查询没执行”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2195145.html

相关图片

相关文章