读书人

关于MyBatis resultMap 三个表关联一

发布时间: 2013-03-21 10:08:17 作者: rapoo

关于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> aaa 的一个属性

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

mybatis resultMap java 关联
[解决办法]
给你个例子

public class Disclosure
{
/**
* DISCLOSURE_ID:爆料信息id
*/
private long id;
/**
* 附件列表
*/
private List<Attachment> 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>

大概这样吧


[解决办法]
引用:
引用:给你个例子
Java code?123456789101112public class Disclosure{ /** * DISCLOSURE_ID:爆料信息id */ private long id; /** * 附件列表 */ private List<Atta……

那就是第二个sql复杂一点罢了,第二个sql关联查询一下呗

读书人网 >Java相关

热点推荐