mybatis 一对多查询 集合创建空对象的问题

在做 mybatis 一对多查询的时候, resultMap 里面用到了集合标签 collection ,后来发现 当该条数据没有子集的时候, collection 会自动创建一个属性都是null的对象。

比如:

Teacher —对应多个— Student   

那么Teacher 里面应该有个 List<Student> studentList 对象,但是如果有一个Teacher里面没有Student的话,用collection会返回一个 属性都是null 的Student对象放在List里面。

解决办法:

在collection 标签上  写上 notNullColumn 属性  ,notNullColumn ="id,name" ,意思是只要id,name 有一个为null 则 就不创建这个子对象 。官方文档如下:

notNullColumn

默认情况下,在至少一个被映射到属性的列不为空时,子对象才会被创建。 你可以在这个属性上指定非空的列来改变默认行为,

指定后,Mybatis 将只在这些列非空时才创建一个子对象。可以使用逗号分隔来指定多个列。默认值:未设置(unset)。

http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html 点击链接查看详情

猜你喜欢

转载自www.cnblogs.com/Human-nature/p/10918747.html