BUG是这样的,重启项目之后,前端第一次请求,我后台(偶尔)就崩了,报空指针,前端刷新一下发送第二次请求,我这里又都好了没有了空指针,DEBUG过了,每次参数都是有的,不会有参数不存在的问题,如果是我SQL代码问题,那第二次请求肯定也是空,所以排除了
报错信息为
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.NullPointerException
下面是代码
@RestController
@RequestMapping(value = {“home”})
public class HomeController {
@Resource
private SuperviseDynamicService superviseDynamicService;
/**
* 查询监管动态管理列表
*/
@RequiredToken(value = false)
@RequestMapping(value = {"getAll"},method = RequestMethod.GET)
public ResponseBean selectAll(String name, String type , Integer day,Integer year, PageInfo page){
List<Map<String, String>> resList = superviseDynamicService.selectAllSuperviseDynamic(name, type, day, year, page);
return ResponseBean.page((Page) resList, 200, "success");
}
}
@Service
public class SuperviseDynamicService extends BaseService<SuperviseDynamic,SuperviseDynamicDAO> {
@Resource
private SuperviseDynamicDAO dynamicDAO;
/**
* 查询监管动态列表
* @param name
* @param type
* @param day
* @param page
* @return
*/
public List<Map<String,String>> selectAllSuperviseDynamic(String name, String type, Integer day, Integer year,PageInfo page) {
List<Map<String,String>> list = dynamicDAO.selectAllSuperviseDynamic(name,type,day,year,page.toRowBounds());
return list;
}
}
@Repository
public interface SuperviseDynamicDAO extends Mapper{
List<Map<String,String>> selectAllSuperviseDynamic(@Param(value = “name”) String name,
@Param(value = “type”)String type,
@Param(value = “day”)Integer day,
@Param(value = “year”)Integer year,RowBounds rowBounds);
}
<!-- 查询认证公司列表 -->
<select id="selectAllSuperviseDynamic" resultType="java.util.Map">
select id,title,d_type as dType, create_time as createTime
from supervise_dynamic
<where>
state=1
<if test="null != name">
AND title like '%${name}%'
</if>
<if test="null != type">
AND d_type =#{type}
</if>
<if test="null != day">
AND DATE_SUB(CURDATE(), INTERVAL #{day} DAY) <= update_time
</if>
<if test="null != year">
AND DATE_SUB(CURDATE(), INTERVAL 365 DAY) > update_time
</if>
</where>
ORDER BY update_time DESC
</select>
项目刚启动时,首页会有三个地方访问这个接口,然后其中一个(随机)会报错 BUG是这样的,重启项目之后,前端第一次请求,我后台(偶尔)就崩了,报空指针,前端刷新一下发送第二次请求,我这里又都好了没有了空指针,DEBUG过了,每次参数都是有的,不会有参数不存在的问题,如果是我SQL代码问题,那第二次请求肯定也是空,所以排除了