0 0

mybatis 关联查询不执行0

<resultMap type="com.webgame.domain.Game" id="gameMap">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="category" column="category"/>
<result property="url" column="url"/>
<result property="imagePath" column="imagePath"/>
<collection property="comments" column="id" select="getComments"/>这里配置了一对多关联
</resultMap>
这是执行的语句
<select id="getById" statementType="CALLABLE" parameterType="map" resultMap="gameMap" >
call sp_getGame_ById
(
#{id},
#{name,mode=OUT,jdbcType=VARCHAR},
#{category,mode=OUT,jdbcType=VARCHAR},
#{url,mode=OUT,jdbcType=VARCHAR},
#{imagePath,mode=OUT,jdbcType=VARCHAR}
)
</select>
但是控制台打印的日志显示没有执行这里。
<select id="getComments" statementType="CALLABLE" parameterType="map">
call sp_condition_page_search
(
#{condition},
#{startRow},
#{endRow},
#{tableName},
#{commentList,mode=OUT,jdbcType=CURSOR,resultMap=commentMap}
)
</select>
测试部分
SqlSession session = getSession();
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("id", 1);
params.put("name", "");
params.put("category", "");
params.put("url", "");
params.put("imagePath", "");
params.put("comments", java.util.Collections.EMPTY_SET);
session.selectOne("com.webgame.domain.Game.getById", params);
session.commit();
session.close();
System.out.println("params.comment:" + params.get("commentList"));

日志没有报错
2012-07-08 13:41:35,410 [main] DEBUG [com.webgame.domain.Game.getById] - ooo Using Connection [oracle.jdbc.driver.OracleConnection@1982a03]
2012-07-08 13:41:35,410 [main] DEBUG [com.webgame.domain.Game.getById] - ==>  Preparing: call sp_getGame_ById ( ?, ?, ?, ?, ? )
2012-07-08 13:41:35,467 [main] DEBUG [com.webgame.domain.Game.getById] - ==> Parameters: 1(Integer)
2012年7月08日 13:52

2个答案 按时间排序 按投票排序

0 0

可能是开了延迟加载了吧.

2012年10月12日 11:42
0 0

兄弟,这个问题有没有解决啊,我也遇到了,能否告诉我解决方法,谢了。

2012年7月14日 19:16

相关推荐

    mybatis 关联查询完整代码

    本篇文章将详细探讨MyBatis在关联查询中的一对一和一对多关系映射,以及如何通过ResultMap配置来实现这些复杂的查询。 在数据库设计中,一对一和一对多的关系非常常见。一对一关系通常出现在两个表之间,其中一个表...

    Spring整合MyBatis关联查询示例

    关联查询的执行通常有两种方式: 1. **嵌套结果映射**(Nested Result Maps):在同一个ResultMap中定义一对一或一对多的子ResultMap,MyBatis会自动处理关联对象的填充。 2. **关联查询**(Association Queries):...

    mybatis自关联查询

    在实际运行中,我们可以通过控制台打印 SQL 语句或日志,确保查询正确执行,并能正确获取到栏目及它们关联的新闻。 通过以上步骤,我们就可以在 MyBatis 中实现新闻栏目的一对多自关联查询。这个例子不仅展示了 ...

    手写mybatis实现查询所有操作

    在本文中,我们将深入探讨如何手写MyBatis实现查询所有操作,以加深对其工作原理的理解。 首先,我们需要理解MyBatis的核心组件。MyBatis包含SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和Mapper接口...

    Mybatis关联映射Demo

    Mybatis关联映射是数据库操作中的一个重要概念,它允许我们在SQL查询中处理一对多、多对一、多对多等复杂关系。在这个"Mybatis关联映射Demo"中,我们将深入探讨如何在Mybatis框架中实现这些关系映射,以便更好地理解...

    mybatis联合查询

    在实际开发中,MyBatis 还允许我们使用 `resultMap` 定义复杂的数据结构映射,以及使用 `select` 标签来执行 SQL 查询。此外,`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;` 等动态 SQL 元素可以帮助我们在映射文件...

    实现Mybatis框架中一对多关联映射的查询操作。

    本篇将详细讲解如何在Mybatis中实现一对多关联映射的查询操作。 首先,我们要明确一对多关联映射的基本概念。在这个例子中,User表(用户表)和Order_form表(订单表)之间存在1-N的关系,意味着一个用户可以有多个...

    mybatis 的高级关联查询源码

    在关联查询中,MyBatis 允许我们在 `collection` 标签内定义 `&lt;select&gt;` 子标签,用于执行 SQL 查询获取子集合数据。这里可以编写一个带有参数的 SQL 语句,通过主表的 ID 或其他关联字段来查询子表的数据。 3. **...

    mybatis关联映射源码

    MyBatis会执行子查询,将所有关联的对象加载到主对象的集合属性中。在`chapter10_oneToMany`文件中,你可以看到如何配置和使用这种映射的实例。 最后,我们探讨**多对多**(ManyToMany)关联映射。这是一种复杂的...

    MyBatis高级查询+JFreeChart热点

    2. **关联查询**: MyBatis支持一对一、一对多、多对一和多对多的关联查询。通过`&lt;association&gt;`、`&lt;collection&gt;`标签,可以在一个查询中获取关联表的数据,减少数据库交互,提高性能。 3. **结果映射**: 结果映射...

    原样输出mybatis的sql执行语句(mysql和oracle都可用).zip

    在默认情况下,MyBatis并不会直接打印出执行的SQL语句,因此我们需要开启日志功能以获取这些信息。 1. **启用MyBatis日志** MyBatis支持多种日志实现,如Log4j、Logback和Java内置的日志API。在SpringBoot项目中,...

    mybatis关联/级联以及动态sql

    在关联和级联查询以及动态SQL方面,MyBatis提供了强大的功能,使得开发人员能够更加灵活地处理数据库交互。 首先,我们来探讨MyBatis中的关联(Association)和级联(Cascading)。关联通常用于描述一个实体对象与...

    Mybatis高级映射查询

    同时,Mybatis 还支持在查询中使用 `left outer join`, `right outer join`, `inner join` 等关联查询。 9. 自定义插件:Mybatis 允许开发者创建自定义插件,通过拦截器机制,可以在 SQL 执行前后进行额外的操作,...

    MyBatis一对一查询的代码

    这样,当执行查询时,MyBatis会自动处理这种复杂的一对一关系,将查询结果组装成完整的`User`对象,其中包含了`UserDetail`对象。 总结一下,MyBatis中的一对一查询主要通过`resultMap`、`id`、`result`以及`...

    MyBatis基本使用总结

    为了实现接口方法与映射文件中定义的SQL的关联,MyBatis使用了动态代理机制。在运行时,MyBatis会为每个Mapper接口生成一个实现了该接口的代理类,当调用接口方法时,实际上执行的是代理类中的方法,这个方法会解析...

    Java的MyBatis框架中实现多表连接查询和查询结果分页

    这样,当执行`selectWebsitesWithVisitors`查询时,MyBatis会自动进行多表连接,并将查询结果映射为包含`Visitor`对象的`Website`对象列表。 2. **动态SQL**: MyBatis的动态SQL是其一大特色,通过`&lt;if&gt;`, `...

    支持连表查询的mybatis-plus

    MyBatis-Plus(简称MP)是MyBatis框架的一个扩展,它在MyBatis的基础上提供了许多便捷的功能,包括但不限于自动填充 CRUD 操作、条件构造器、动态 SQL 等。在描述中提到的“支持连表查询的mybatis-plus”,意味着MP...

    Mybatis案例一所用建表语句

    最后,在服务层(Service)或控制层(Controller)调用这个`createTable`方法,Mybatis会执行对应的SQL,完成建表操作。 总结一下,Mybatis案例一所涉及的知识点主要包括: 1. Mybatis的基本架构:SQL映射文件、...

    一个简单的mybatis查询数据库demo源码

    这个"一个简单的mybatis查询数据库demo源码"是用于演示如何在实际项目中使用MyBatis来执行数据库查询的实例。 首先,MyBatis的核心组件包括XML配置文件、SqlSessionFactory和Mapper接口。XML配置文件定义了数据源、...

Global site tag (gtag.js) - Google Analytics