MyBatis映射文件resultMap元素中使用多个association的方法

网友投稿 965 2023-02-07

MyBatis映射文件resultMap元素中使用多个association的方法

MyBatis映射文件resultMap元素中使用多个association的方法

现在有一张订单表t_stockorder,其拥有id、code、client_id、merchandise_id、merchandise_number、order_date、operator_id这些字段,其中client_id关联t_client表中code字段,merchandise_id关联t_merchandise表的code字段,operator_id关联t_employee表的code字段。

现在要通过SQL语句将订单表中t_stockorder的数据全部查询出来,SQL语句如下所示:

select so.id, so.code, c.name cname, m.name mname,

so.merchandise_number,

so.order_date, e.name ename

from

inventory.t_stockorder so

inner join

inventory.t_client c on c.code = so.client_id

inner join

inventory.t_merchandise m on m.code = so.merchandise_id

inner join

inventory.t_employee e on e.code = so.operator_id

现在要在mapper映射文件中添加动态Sql语句,一般情况下映射文件中的resultMap元素中只可以有一个association,那如何添加多个association到resultMap中呢?正确代码如下图所示:

select so.idpvzAB, so.code, c.name cname, m.name mname,

so.merchandise_number,

so.order_date, e.name ename

from

inventory.t_stockorder so

inner join

inventory.t_client c on c.code = so.client_id

inner join

inventory.t_merchandise m on m.code = so.merchandise_id

inner join

inventory.t_employee e on e.code = so.operator_id

and id = #{id}

and so.code = #[code]

and client_id = #{client.code}

and merchandise_id = #{merchandise.code}

and merchandise_number = #{merchandiseNumber}

and order_date = #{orderDate}

and operator_id = #{employee.code}

resultMap中association的各个属性的含义:

property:映射实体类的字段或属性。

colum:数据库的列名或者列标签别名。

javaTyp:完整java类名或别名。

jdbcType支持的JDBC类型列表列出的JDBC类型。这个属性只在insert,update或delete的时候针对允许空的列有用。

resultMap: 一个可以映射联合嵌套结果集到一个适合的对象视图上的ResultMap。这是一个替代的方式去调用另一个select语句。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springBoot启动时让方法自动执行的几种实现方式
下一篇:详解Mybatis中的CRUD
相关文章

 发表评论

暂时没有评论,来抢沙发吧~