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
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
- Mybatis中collection和association的使用区别详解
- Mybatis之association和collection用法
- 在Mybatis中association标签多层嵌套的问题
- mybatis中一对一关系association标签的使用
- MyBatis中association的基本使用方法
- mybatis的association传递参数问题示例
- Mybatis中一对多(collection)和一对一(association)的组合查询使用
- MyBatis的collection和association的使用解读
- mybatis中association标签的使用解读
- MyBatis使用嵌套查询collection和association的实现
- Mybatis的association使用子查询结果错误的问题解决
相关文章
java核心编程之文件过滤类FileFilter和FilenameFilter
这篇文章主要为大家详细介绍了java文件过滤类FileFilter和FilenameFilter,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-08-08
部署springboot打包不打包配置文件,配置文件为外部配置文件使用详解
在Spring Boot项目中,将配置文件排除在jar包之外,通过外部配置文件来管理不同环境的配置,可以实现灵活的配置管理,在pom.xml文件中添加相关配置,打包时忽略指定文件,运行时在jar包同级目录下创建config文件夹,将配置文件放入其中即可2025-02-02


最新评论