跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • [求助] Mybatis 里边可以使用 collection 标签里边嵌套 association 标签嘛 如果可以的话我这个写的哪里有问题? 详细在文中
未分類
6 9 月 2020

[求助] Mybatis 里边可以使用 collection 标签里边嵌套 association 标签嘛 如果可以的话我这个写的哪里有问题? 详细在文中

[求助] Mybatis 里边可以使用 collection 标签里边嵌套 association 标签嘛 如果可以的话我这个写的哪里有问题? 详细在文中

資深大佬 : gzk329 5

public class Employee {     private String eid;     private String name;     private Date startTime;     private Manager manager;  public class Manager {     private String mid;     private String name;     private Employee employee;  

[求助] Mybatis 里边可以使用 collection 标签里边嵌套 association 标签嘛 如果可以的话我这个写的哪里有问题? 详细在文中

我现在写了一个方法要通过经理的 ID 查出经理 同时一个经理对象里边会有对应的多个雇员,然后雇员对象里边还有对应的经理信息 可以使用 collection 标签里边嵌套 association 标签嘛 如果可以的话我这个写的哪里有问题?

    <select id="getEmployeeByManagerId" resultMap="managerMap">         select * from         employee e, manager m         where m.id = e.mid         and m.id = #{id};     </select>     <resultMap id="managerMap" type="com.gzk.pojo.Manager">         <result property="mid" column="id"/>         <result property="name" column="name"/>         <collection property="employee" ofType="com.gzk.pojo.Employee">             <result property="eid" column="id"/>             <result column="name" property="name"/>             <result property="startTime" column="startTime"/>             <association property="manager" column="mid" >                 <result column="id" property="mid"/>                 <result property="name" column="name"/>             </association>         </collection>     </resultMap> </mapper> 

大佬有話說 (7)

  • 主 資深大佬 : gzk329

    “`
    [Manager(mid=051b89f3b6bd45aea71252ed16f1e5d0, name=赵六, employee=Employee{eid=’051b89f3b6bd45aea71252ed16f1e5d0′, name=’赵六’, startTime=Wed Sep 02 15:08:56 CST 2020, manager=null}),
    Manager(mid=3aa1491a4adb47f89b0f7dab804bd9d9, name=李四, employee=Employee{eid=’3aa1491a4adb47f89b0f7dab804bd9d9′, name=’李四’, startTime=Sun Aug 02 15:08:47 CST 2020, manager=null})]
    “`
    如果去掉 association 标签的话是可以查出来的 就是查出来的雇员对象里边的经理信息没有了

  • 主 資深大佬 : gzk329

    还有两张表如果有同名的列
    比如 a 表有一列 id
    b 表也有一列也叫 id
    mybatis 里边该怎么区分
    除了起别名?

  • 資深大佬 : luhe

    是 List<Employee>吧

  • 資深大佬 : wysnylc

    真不怕 N+1 啊

  • 主 資深大佬 : gzk329

    @luhe 是的 这个我已经改好了 但是不知道怎么读出经理信息

    “`
    [Manager(mid=8179d370bff14f5b996023fce00745de, name=李经理, employee=[Employee{eid=’051b89f3b6bd45aea71252ed16f1e5d0′, name=’赵六’, startTime=null, manager=null}, Employee{eid=’3aa1491a4adb47f89b0f7dab804bd9d9′, name=’李四’, startTime=null, manager=null}])]
    “`

    “`
    <select id=”getEmployeeByManagerId” resultMap=”managerMap”>
    select m.id mid, m.name mName,e.id eid,e.name eName from
    employee e, manager m
    where m.id = e.mid
    and m.id = #{id};
    </select>
    <resultMap id=”managerMap” type=”com.gzk.pojo.Manager” >
    <result property=”mid” column=”mid”/>
    <result property=”name” column=”mName”/>
    <collection property=”employee” ofType=”com.gzk.pojo.Employee” >
    <result property=”eid” column=”eid”/>
    <result column=”eName” property=”name”/>
    <result property=”startTime” column=”startTime”/>
    <!–<association property=”manager” column=”mid” >
    <result column=”mid” property=”id”/>
    <result property=”name” column=”mName”/>
    </association>–>
    </collection>
    </resultMap>

    “`

  • 資深大佬 : mmdsun

    不如单表查,然后手动循环查。

    mybatis 一对多关联基本没人用 虽然有一二级缓存但本质还是 n+1 致命的是还会导致某些分页插件计算不准。

    jpa 这种一对多关联的 idea 可以自动生成。

  • 資深大佬 : Jrue0011

    这循环引用。。。或许是你的 association 标签没有指定属性 javaType=”com.gzk.pojo.Manager”

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具