mybatis 有中间表的一对多关联查询

关于MyBatis resultMap 3个表关联,一张是中间表
假设有3个表
表A 有字段 id,a1,a2,a3其中id为主键,
又有表B 有字段 id,b1,b2,b3其中id为主键,
A跟B 直接没有关系,是通过一张关系表C 来进行关联的
C 有字段 id,A_id,B_id

现在 假设 A B的关系是 多对1的关系 假设
B表所对应的 实体类有这样的 List<A$amp;>amp;$nbsp;aaa 的一个属性

用Batis resultMap 设置 查询B的时候 把关系的也查询出来。
如果可以,那要怎么写,最好有简单代码,或者例子,网上差不多的例子链接也可以。


给你个例子

  public class Disclosure
{
/**
 * DISCLOSURE_ID:爆料信息id
 */
private long id;
/**
 * 附件列表
 */
private List<Attachment$amp;>amp;$nbsp;attachments;

}


  <resultMap id="disclosureMap"
type="xxxx.Disclosure">
<id property="id" column="DISCLOSURE_ID" />
<collection property="attachments" column="DISCLOSURE_ID"
ofType="xxx.Attachment"
select="xxx.DisAttachmentMapper.getAttachmentsByDisclosureId">
</collection>
</resultMap>


上面是对应disclosure类的resultMap
DisAttachmentMapper.getAttachmentsByDisclosureId
对应的mapper

  <resultMap id="attachmentMap" type="xxx.Attachment">
<result property="attachmentId" column="DISCL_ATT_ID" />
<result property="attachmentUrl" column="ATTACHMENT_URL" />
</resultMap>
<select id="getAttachmentsByDisclosureId" parameterType="long" resultMap="attachmentMap">
select DISCL_ATT_ID,ATTACHMENT_URL from DISCLOSURE_ATTACHMENT where DISCLOSURE_ID =#{disclosureId}
</select>


大概这样吧


以上内容为引用自http://www.educity.cn/wenda/457082.html,主要是保存这个例子好让自己下次遇到这种问题不记得了可以直接看,如果各位有什么更好方法愿意分享的话感激不尽

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值