mybatis 一对一关联 association 返回空值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis 一对一关联 association 返回空值相关的知识,希望对你有一定的参考价值。

在mybatis做association的关联时,后台执行了association的 查询语句,但是得到的结果中association关联的对象为null.代码如下截图
debug是的结果

参考技术A 最好不要用 association联合查询 参考技术B 你可以使用其他方式比如:

<association property="这个自定义" javaType="类的全路径">
<result property="类里面的属性" column="列名"/>
</association>
就正常查询 就可以返回

对 类里面的get set方法还要加上
参考技术C get set方法写了吗?

MyBatis的关联查询

一.MyBatis的关联查询

在关系型数据库中,我们经常要处理一对多,多对一和多对多的关系。

(1).MyBatis一对一关联查询总结

  MyBatis中使用association标签来解决一对一的关联查询,association标签可用的属性如下:

property:对象属性的名称

javaType:对象属性的类型

column:所对应的外键字段名称

select:使用另一个查询封装的结果

 

(2)关联映射一对多

MyBatis中使用collection标签来解决一对多的关联查询,ofType属性指定集合中元素的对象类型

       列:一个老师对应多名学生

          一个部门对应多个员工

 

 

 

Xml主要代码:

 

(3).关联映射多对一

反过来,多个人对一个国家。每个人只对一个国家。当然不考虑双重国籍的吵架问题。

由于查询多对象时,也是一个一个查的。所以:一对一关联查询的实现方式与多对一的实现方式是相同的

1)实体类稍有变化:

 

 

国家没有了Set<People>人成员变量,人有了国家成员变量

Dao接口

 

 

 

mapper.xml配置文件

 

 

 

 

 

4)测试输出

 

 

 

 

备注:

Country类中可以不删除Set<People>peoples ; 成员变量。

People类中可以一直有Countrycountry;成员变量。

去掉是为了便于理解一对多、多对一

4多对多关系

一个学生可以选多门课程,而一门课程可以由多个学生选择,这就是一个典型的多对多关联关系。所谓多对多关系,其实是由两个互反的一对多关系组成。即多对多关系都会通过一个中间表来建立,例如选课表。学生对于选课表来说是一对多,课程对于选课表来说也是一对多。

 

以上是关于mybatis 一对一关联 association 返回空值的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis的关联查询

Java--Mybatis,mapper.xml文件使用association;collection实现一对一,一对多关联

Mybatis学习笔记:多对一(association )一对多处理(collection)

mybatis 关联(多表)查询

MyBatis一对多查询及延迟加载

mybatis 延迟加载 ,查询缓存