mybatis一对一关联查询无法查出关联对象的数据的解决
2017-08-14 23:04
351 查看
今天使用Mybatis一对一关联查询时候出现一个问题,只能查出关联表主键,无法查询出关联表中的其他数据:
Mybatis的代码:
数据库结构:
查询结果:
最后弄了半天才发现原来关联查询的那个对象的属性名必须和数据库中的字段名一样。即:
Rolename字段在数据库中也是这个名字。
或者将查询改为:
改完之后的查询结果如下:
Mybatis的代码:
<mapper namespace="com.usc.user.mapper.UserMapper"> <resultMap type="UserBean" id="UserInfoMap"> <id property="id" column="id" /> <result property="username" column="username" /> <result property="password" column="password" /> <result property="roleId" column="roleId" /> <association property="role" select="queryRoleInfoById" column="roleId" > <id property="roleId" column="roleId" /> 4000 <result property="rolename" column="role_name" /> </association> </resultMap> <!-- 用户登录 --> <select id="validateUser" resultMap="UserInfoMap" parameterType="UserBean"> SELECT * FROM User WHERE username=#{username} and password=#{password} </select> <!-- 查询用户角色 --> <select id="queryRoleInfoById" resultType="RoleInfoBean"> SELECT * FROM role_info WHERE roleId=#{roleId} </select> |
查询结果:
{"id":1,"username":"11","password":"22","roleId":2,"role":{"roleId":2,"rolename":null}} |
Rolename字段在数据库中也是这个名字。
或者将查询改为:
<!-- 查询用户角色 --> <select id="queryRoleInfoById" resultType="RoleInfoBean"> SELECT roleId roleId,role_name rolename FROM role_info WHERE roleId=#{roleId} </select> |
改完之后的查询结果如下:
{"id":1,"username":"11","password":"22","roleId":2,"role":{"roleId":2,"rolename":"副站长"}} |
相关文章推荐
- mybatis一对一关联查询无法查出关联对象的数据的解决
- mybatis一对一关联查询无法查出关联对象的数据的解决
- 在学习Mybatis一对一关联查询时遇到的疑问【待解决】
- mybatis 一对一关联对象查询查询为空 bug
- MyBatis基础篇之使用association解决一对一关联查询
- MyBatis基础篇之使用association解决一对一关联查询
- myBatis 中查询多表数据时使用association处理一对一关联
- 【问题解决】Mybatis一对多/多对多查询时只查出了一条数据
- laravel查询得到的数据(为对象object)无法进行数组循环遍历,而且不能用数组方式访问和查看的原因以及解决方法
- MyBatis-一对一关联表查询 -05
- jpa缓存导致无法查询到更新后的数据&android出现ANR的一个解决办法
- mybatis 使用resultMap实现关联数据的查询(association 和collection )
- EF模式下 多表关联查询结果作为数据源 gridview无法编辑的问题解决思路
- mybatis 一对一查询 出现一条数据总结
- Mybatis一对一、一对多关联查询
- Mybatis学习之一对一关联查询
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- Mybatis 级联查询时只查出了一条数据
- MyBatis学习笔记:一对一和一对多关联表查询
- mybatis一对多关联查询子表只返回一条数据