mybatis向上递归
时间: 2023-11-07 19:55:38 浏览: 75
MyBatis可以通过递归调用来实现向上递归。我们可以利用MyBatis的ResultMap中的collection来实现这一功能。在ResultMap中,我们可以定义一个collection属性,它可以调用Mapper中的方法进行递归查询。这个方法需要返回一个与当前对象类型相同的列表,以便把递归查询的结果赋值给collection属性。以下是一个示例的核心代码:
<resultMap id="BaseResultMap" type="org.sang.bean.Department">
<id property="id" column="id"/>
<result column="name" property="name"/>
<result column="parentId" property="parentId"/>
<result column="isParent" property="isParent"/>
<collection property="parent" ofType="org.sang.bean.Department" select="org.sang.mapper.DepartmentMapper.getDepByChildId" column="parentId">
</collection>
</resultMap>
<select id="getDepByChildId" resultMap="BaseResultMap">
select d1.* from department d1 where d1.`id`=#{childId} AND d1.enabled=true;
</select>
在这个示例中,我们定义了一个ResultMap,其中的collection属性调用了一个名为getDepByChildId的方法来实现递归查询。该方法需要传入一个childId参数,返回一个与当前对象类型相同的列表。通过这种方式,我们可以实现向上递归查询。
请注意,具体的Mapper中需要定义getDepByChildId方法,该方法需要传入一个childId参数,并返回与当前对象类型相同的列表。
总结起来,通过在ResultMap的collection属性中调用getDepByChildId方法,我们可以实现MyBatis的向上递归查询。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [使用mybatis实现递归查询,mybatis递归查询](https://blog.csdn.net/wang121213145/article/details/122965017)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [mybatis-递归实现](https://blog.csdn.net/qq_42774899/article/details/128822857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文