d383137359 2021-07-20 09:44 采纳率: 0%
浏览 58

mybatis如何定义map可以让一个对象包含多个相同的对象?

Class A {
    public int ID;
    public int Rating1;
    public int Rating2;
    public int Rating3;

    public B mRating1;
    public B mRating2;
    public B mRating3;
}

Class B {
    public int ID;
    public String Code;
    public String NameEn;
    public String NameCn;
    public int IsActive;
}
  <resultMap id="BaseResultMap" type="com.example.demo1.demo.system.dao.entities.dbo.tbA">
    <id column="ID" jdbcType="INT" property="Id" />
    <result column="Rating1" jdbcType="INT" property="Rating1" />
    <result column="Rating2" jdbcType="INT" property="Rating2" />
    <result column="Rating3" jdbcType="INT" property="Rating3" />

    <association property="mRating1" resultMap="com.example.demo1.demo.system.dao.mapper.tbBMapper.BaseResultMap"></association>
    <association property="mRating2" resultMap="com.example.demo1.demo.system.dao.mapper.tbBMapper.BaseResultMap"></association>
    <association property="mRating3" resultMap="com.example.demo1.demo.system.dao.mapper.tbBMapper.BaseResultMap"></association>

  </resultMap>

SELECT A.*,B.*,C.*,D.* 
FORM tb_A A
LEFT JOIN tb_B B ON A.Rating1=B.ID
LEFT JOIN tb_B C ON A.Rating1=C.ID
LEFT JOIN tb_B D ON A.Rating1=D.ID

如上所述,A的对象中3个Rating字段关联B对象的ID,分另可以取到每一个分值的 Code, 英文名,中文名,是否有效等。我在定义ResultMap时,将B对象相应的Map包含在A的ResultMap中了。使用上面的SQL语句查询,但查询出来,只有mRating1这个对象有值,另外两个分值对象为空,Mybatis是如何关联这个查询结果集的。是需要在 association 设置对应的关联参数吗?

  • 写回答

3条回答 默认 最新

  • CSDN专家-Time 2021-07-20 09:49
    关注

    用集合啊.collection

    评论

报告相同问题?

问题事件

  • 创建了问题 7月20日

悬赏问题

  • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。