引言
今天前端找到我说,我们返回数据的时候,即使没有值的时候,也需要保持原有的数据结构,也就说即使字段没有值我们应该将字段返回,否则前端在取值的时候会报NullPointerException,这是因为在用mybatis时没有用实体作为返回(用的是Map) 因此出现了 在返回参数为null的时候 不会返回字段。
解决方案:在mybatis-config.xml中配置:
<settings> <setting name="cacheEnabled" value="true"/> <setting name="callSettersOnNulls" value="true"/> </settings>
这样我们就可以完美解决上面的问题,但是现在我们都是使用spring和mybatis集成的框架,这样我们在配置文件中不能直接使用上面的设置,我们需要单独的创建一个mybatis的配置文件然后在spring-mybatis的配置文件中引入:
<bean id="saasSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="saasDataSource" /> <!-- 实体对象 --> <property name="typeAliasesPackage" value="com.nicchagil.mybatis3spring3intg.bean" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations"> <list> <value>classpath*:com/acs/saasdb/*/mapper/*Mapper.xml</value> </list> </property> <property name="configLocation" value="classpath:/spring/mybatis-config.xml"></property> </bean>
这样我们就可以解决上面的问题了,与君共勉!