gpt4 book ai didi

ibatis - 使用 mybatis 或 ibatis 的一对多关系

转载 作者:行者123 更新时间:2023-12-04 18:11:45 28 4
gpt4 key购买 nike

我有两个表的数据库

  post: 
id
post_name
post_desc

files:
file_id
file_name

post_attachments
post_id
file_id

在我的 xml 映射中,我已经有了
  <select id="selectPosts" resultType="com.mycom.myproject.bean.postBean">  
select id, post_name as postName from post
</select>

所以它是一对多的关系。我想要所有附加到帖子的文件。我不明白如何在 mybatis 中进行映射。

我有我的 PostBean
public class PostBean extends Post {

private List<FileAttachment> filesAttachment;
//getter setter
}

我正在使用带有spring和mysql的mybatis作为数据库
如果您需要其他任何东西,请告诉我。

--更新--

我已将 mapper.xml 修改为
            <resultMap id="BaseResultMap" type="com.mycom.myproject.db.mybatis.model.post">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Sep 11 10:14:08 BST 2012.
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="post_name" jdbcType="VARCHAR" property="postName" />
<collection property="filesAttachment" ofType="com.mycom.myproject.db.mybatis.model.FileAttachment">
<id property="fileId" column="file_id" />
<id property="fileName" column="file_name" />
</collection>

--- 更新2 ---

实际上我也有一个我在上面创建的映射表,所以我的查询就像
   <select id="selectPosts" parameterType="string"  resultType="com.mycom.myproject.bean.postBean"> 
select p.id, p.post_name, fa.file_id as fileId, fa.file_name as fileName from post p
left outer join files f on f.post_id = p.id join post_attachments pa on pa.file_id = f.post_id
where p.id = 371

</select>

最佳答案

如图the manual ,您必须编写更复杂的查询并更改映射器。

请求将是这样的:

<select id="selectPosts" resultType="com.mycom.myproject.bean.postBean">  
select id, post_name, file_id, file_name as postName from post left outer join files
</select>

你的结果图:
<resultMap id="detailedPostResultMap" type="Blog">
<result property="id" column="id"/>
<result property="name" column="post_name"/>
<collection property=filesAttachment" ofType="FileAttachment">
<id property="fileId" column="file_id"/>
<result property="fileName" column="file_name"/>
</collection>
</resultMap>

关于ibatis - 使用 mybatis 或 ibatis 的一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12491536/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com