MyBatis-Plus通過注解的方式綁定一對多查詢


有一個查詢活動的方法需要把所屬組織放到實體里面,通過綁定自定義resultMap實現一對多查詢

實現思路

首先創建一個對應的Mapper然后在Mapper中自定義resultMap和查詢方法,然后通過mybatis中的TableName注解的resultMap綁定

在application.yml中配置Mapper掃描路徑

mybatis-plus:
  mapper-locations: classpath*:static/mapper/*Mapper.xml

自定義ActivitiesMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.school.demo.mapper.auto.ActivitiesMapper">

    <!-- 通用查詢映射結果 -->
    <resultMap id="ActivitiesResultMap" type="com.school.demo.model.auto.Activities">
        <id column="id" property="id" />
        <result column="origanization_id" property="origanizationId" />
        <result column="up_time" property="upTime" />
        <result column="view_num" property="viewNum" />
        <result column="content" property="content" />
        <result column="label" property="label" />
        <result column="title" property="title" />
        <result column="status" property="status" />
        <result column="is_set_join_num" property="isSetJoinNum" />
        <result column="imgs" property="imgs" />
        <result column="column_11" property="column11" />
        <result column="column_12" property="column12" />
        <association property="organization" column="origanization_id" select="findOrganization" />
        <association property="peopleNumManagement" column="id" select="findDate" />
    </resultMap>

    <select id="findOrganization" resultType="com.school.demo.model.auto.Organization">
        SELECT * FROM organization WHERE id = #{origanizationId}
    </select>

    <select id="findDate" resultType="com.school.demo.model.auto.PeopleNumManagement">
        SELECT * FROM people_num_management WHERE a_id = #{id}
    </select>


</mapper>

配置實體類

import com.baomidou.mybatisplus.annotation.TableName;

@TableName(resultMap = "ActivitiesResultMap")
public class Activities extends Model {

之后繼續使用mybatis-plus的各種方法可以正常使用,例如分頁之類


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM