spring+jpa+hibernate中EntityManager注入失败原因分析

部分controller代码:

    if(StringUtil.isNotBlank(terminalNumFlag) && !terminalNumFlag.equals(terminalNum)){
            boolean isLegal = DeviceSerialUtil.checkSerial(terminalNum, "T");
            if(!isLegal){
                modelMap.put("message", "设备不合法");
                return new ModelAndView("jacksonJsonView", modelMap); 
            }
            String deviceFlowCode = terminalNum.substring(13, 28);
            terminalNum = DeviceSerialUtil.getDeviceRealSerial(deviceFlowCode);
        }
        SysTerminalDao sysTerminalDao = new SysTerminalDao();
        long result = sysTerminalDao.checkDistributionChannel(terminalNum);
          if (result == 0) {
            /* 非公司货源. */
              modelMap.put("message", "非公司货源");
              return new ModelAndView("jacksonJsonView", modelMap); 
          }

部分dao代码:

    /** 注入EntityManager */
    @PersistenceContext
    protected EntityManager entityManager;

    public Long getCountByNative(String sqlCount) {
        Query query = entityManager.createNativeQuery(sqlCount);
        return Long.parseLong(query.getSingleResult().toString());
    }

 

通过调试发现,entityManager获取的始终未null值,最终定位到是控制层标红语句的原因

 

解决方案:

  将获取dao对象修改为spring注入

修改后controller中代码为:

    @Resource
    private SysTerminalDao sysTerminalDao;

if(StringUtil.isNotBlank(terminalNumFlag) && !terminalNumFlag.equals(terminalNum)){
            boolean isLegal = DeviceSerialUtil.checkSerial(terminalNum, "T");
            if(!isLegal){
                modelMap.put("message", "设备不合法");
                return new ModelAndView("jacksonJsonView", modelMap); 
            }
            String deviceFlowCode = terminalNum.substring(13, 28);
            terminalNum = DeviceSerialUtil.getDeviceRealSerial(deviceFlowCode);
        }

        long result = sysTerminalDao.checkDistributionChannel(terminalNum);
          if (result == 0) {
            /* 非公司货源. */
              modelMap.put("message", "非公司货源");
              return new ModelAndView("jacksonJsonView", modelMap); 
          }

 

posted @ 2018-06-14 12:38  根须  阅读(941)  评论(0)    收藏  举报