引言
今天前端找到我说,我们返回数据的时候,即使没有值的时候,也需要保持原有的数据结构,也就说即使字段没有值我们应该将字段返回,否则前端在取值的时候会报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>
这样我们就可以解决上面的问题了,与君共勉!