会飞的鱼1216 2023-07-19 21:26 采纳率: 0%
浏览 17

关于#mybatis#的问题,如何解决?

mybatis映射问题!

例:有2张表 tab_a,tab_b映射2个pojo实体分别为a,b; 一对多关系;a 实体中有属性 id, code, name, list,b实体中有属性 id,pid,txt ;
mybatis中通过关联查询 ;mysql : select a.code, b.txt from tab_a as a lefj join tab_b as b on a.id = b.pid 注意查询的字段;
返回到 resultMap 中
mybatis.xml如下

<resultMap id="joinData" type="a">
        <result property="code" column="code"/>
        <collection property="bList" ofType="com.pojo.b">
            <result property="txt " column="txt "/>
        </collection>
</resultMap>

MySQL中就查询了某些字段映射到 resultMap 中,但是最终返回会将 a 的 id,name 和 b 的 id 的字段也会显示出来并且为 null,
提问 mybatis 如何 将 不需要查询的字段过滤掉?

  • 写回答

4条回答 默认 最新

  • 金戈鐡馬 2023-07-19 22:20
    关注

    在MyBatis中,如果你不想查询某些字段并将它们过滤掉,可以使用和标签来定义一个可重用的查询片段,并在需要的地方引用它。

    首先,在你的mapper文件中定义一个标签,例如:

    <sql id="baseColumns"> a.id, a.code, a.name </sql>
    

    然后,在你的查询语句中使用标签引用这个片段,并在需要的地方添加其他字段,例如:

    <select id="yourQuery" resultMap="joinData"> SELECT <include refid="baseColumns"/>, b.txt FROM tab_a as a LEFT JOIN tab_b as b ON a.id = b.pid </select>
    

    这样,你就只查询了需要的字段,并且不会返回不需要的字段。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月19日

悬赏问题

  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。
  • ¥20 CST怎么把天线放在座椅环境中并仿真