洞察如何选择适合你的企业的小程序开源框架来实现高效开发与管理
965
2023-02-07
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~