Mybatis中诡异的空数据行
Mybatis中的resultMap用起来很方便,结合association和collection属性可以实现一对一或者一对多的关联查询。
但是当association或collection对应的的查询sql中,有字段的值为' ',也就是空时,会出现即使sql查不出任何数据,在association或collection中也会对应生成一条对象的情况。
在这个对象中,所有值都为空。
这就会导致我们的从属对象中会莫名其妙的出现空数据对象。
那么这个问题的解决方案就是,在association或collection的属性中,指定notNullColumn属性。用法如下:

在这里这个属性指定的字段"attachId",不会为空。也就是说,只有当这个字段不为空时,Mybatis才会创建对象。
那么即使在上图的noticeAttList对应的sql中,有字段,比如fdfsFileSuffix字段,为' ',那也不会生成一条空对象。
值得注意的是,当字段为null时,就不会出现这个空数据的现象,也就不需要指定notNullColumn属性。

浙公网安备 33010602011771号