mybatis利用association或collection传递多参数子查询
有时候我们在查询数据库时,需要以查询结果为查询条件进行关联查询。
在mybatis 中通过 association 标签(一对一查询,collection 一对多 查询) 实现延迟加载子查询
<resultMap id="xxxMap" type="xxxx.bean.xxx" extends="zzzzMap"> <association property="destName" javaType="java.lang.String" select="xxx.dao.xxxDao.getBySource" column="{sourceTarget=id,sourceType=cmdb_type}"/> </resultMap>
解释:
定义 xxxMap 继承 zzzzMap 类型为 xxxx.bean.xxx 实体。
然后通过 association 标签(一对一查询,collection 一对多 查询)。
select 子查询标签,值为查询的dao 层的方法。
column 为 传递到select 查询里的参数,sourceTarget=id (sourceTarget 为子查询方法的参数,id 为父查询的记录id 用于传递到子查询中作为sourceTarget 的值)
property=”destName” 将查询的结果映射到父查询的 resultMap 的 destName 属性
javaType=”java.lang.String” 查询结果的类型,通常是一个bean实体
子查询对应的dao层
String getBySource(@Param("sourceTarget") int sourceTarget, @Param("sourceType") String sourceType); <select id="getBySource" resultMap="xxxMap"> SELECT name FROM xxx_relation WHERE source_target = #{sourceTarget} and source_type = #{sourceType} </select>
参考:https://www.jb51.net/article/153421.htm
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
相关文章
基于JPA实体类监听器@EntityListeners注解的使用实例
这篇文章主要介绍了JPA实体类监听器@EntityListeners注解的使用实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-08-08Maven中dependencyManagement管理项目依赖项
在开发 Java 项目时,管理和协调依赖项的版本号是一项重要而繁琐的任务,本文主要介绍了Maven中dependencyManagement管理项目依赖项,具有一定的参考价值,感兴趣的可以了解一下2024-01-01Java用BigDecimal解决double类型相减时可能存在的误差
这篇文章主要介绍了Java用BigDecimal解决double类型相减时可能存在的误差,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-05-05Springboot使用@WebListener 作为web监听器的过程解析
这篇文章主要介绍了Springboot使用@WebListener作为web监听器的过程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-08-08IDEA导入eclipse项目并且部署到tomcat的步骤详解
这篇文章主要给大家介绍了关于IDEA导入eclipse项目并且部署到tomcat的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2019-02-02
最新评论