zoukankan      html  css  js  c++  java
  • Null value was assigned to a property of primitive type setter of

    mysql写sql时获取的值为null,报错

    Caused by: org.springframework.orm.hibernate4.HibernateSystemException: Null value was assigned to a property of primitive type setter of com.ansh.func.pushtask.repairassignment.entity.InsurerSettlementEntity.taotalHourFee; nested exception is org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.ansh.func.pushtask.repairassignment.entity.InsurerSettlementEntity.taotalHourFee
        at org.springframework.orm.hibernate4.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:216)
        at org.springframework.orm.hibernate4.HibernateExceptionTranslator.convertHibernateAccessException(HibernateExceptionTranslator.java:57)
        at org.springframework.orm.hibernate4.HibernateExceptionTranslator.translateExceptionIfPossible(HibernateExceptionTranslator.java:44)
        at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59)
        at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
        at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
        at com.sun.proxy.$Proxy179.getInsurerSettlementEntityList(Unknown Source)
        at com.ansh.func.pushtask.repairassignment.service.impl.RepairAssignmentServiceImpl.getInsurerSettlementEntityList(RepairAssignmentServiceImpl.java:323)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
        at com.sun.proxy.$Proxy182.getInsurerSettlementEntityList(Unknown Source)
        at com.ansh.func.pushtask.repairassignment.web.sys.RepairAssignmentController.getTotalStatistics(RepairAssignmentController.java:198)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
        ... 59 more

    解决方法:

    https://www.runoob.com/mysql/mysql-func-ifnull.html

    使用IFNULL方法

        /**获取保险公司结算数统计数据
         * @param settleStartTime
         * @param settleEndTime
         * @param companyName
         * @return
         */
        /* (non-Javadoc)
         * @see com.ansh.func.pushtask.repairassignment.dao.RepairAssignmentDao#getInsurerSettlementEntityList(java.lang.String, java.lang.String, java.lang.String)
         */
        @Override
        public List<InsurerSettlementEntity> getInsurerSettlementEntityList(String settleStartTime, String settleEndTime,
                String companyName,int currentNum, int pageSize,String type) {
            StringBuffer hql = new StringBuffer();
            if(!"2".equals(type)){
                 hql = new StringBuffer(" SELECT companyName,SUM(hourFee) AS taotalHourFee,SUM( rescueFee) AS taotalRescueFee,SUM( finalFee) AS taotalFinalFee,SUM(hourFee+rescueFee+finalFee) AS taotalAllFee FROM repair_assignment  ");
            }else{
                 hql = new StringBuffer(" SELECT IFNULL(SUM(hourFee),0) AS taotalHourFee, IFNULL(SUM( rescueFee),0) AS taotalRescueFee, IFNULL(SUM( finalFee),0) AS taotalFinalFee, IFNULL(SUM(hourFee+rescueFee+finalFee),0) AS taotalAllFee FROM repair_assignment  ");
            }
            if(BaseUtil.isNotBlank(companyName) || (BaseUtil.isNotBlank(settleStartTime) && BaseUtil.isNotBlank(settleEndTime))){
                hql.append("WHERE 1=1");
            }
            
            if(BaseUtil.isNotBlank(companyName)){
                hql.append(" and companyName=:companyName");
            }
            
            if(BaseUtil.isNotBlank(settleStartTime)){
                hql.append(" and r.settleTime>=:settleStartTime");
            }
            if(BaseUtil.isNotBlank(settleEndTime)){
                hql.append(" and r.settleTime<=:settleEndTime");
            }
                
            if(!"2".equals(type)){
                hql.append(" GROUP BY  companyName");
            }
            
            Query query= this.getSession().createSQLQuery(hql.toString());
            query.setResultTransformer(Transformers.aliasToBean(InsurerSettlementEntity.class));
            if("1".equals(type)){
                query.setFirstResult(currentNum);
                query.setMaxResults(pageSize);
            }
    
            if(BaseUtil.isNotBlank(companyName)){
                query.setParameter("companyName", companyName);
            }
            if(BaseUtil.isNotBlank(settleStartTime)){
                query.setParameter("settleStartTime", settleStartTime);
            }
            if(BaseUtil.isNotBlank(settleEndTime)){
                query.setParameter("settleEndTime", settleEndTime);
            }
            
            List<InsurerSettlementEntity> list=query.list();
            if(list!=null && list.size()>0){
                return list;
            }
            return null;
        }
  • 相关阅读:
    vuex之store拆分即多模块状态管理
    vue项目中使用vueX
    vue中父子组件的参数传递和应用
    VUE中使用vue-awesome-swiper
    VUE真实项目中常用的生命周期和参数
    VUE生命周期
    vue+mockjs 模拟数据,请求回调的应用
    Vue项目搭建与部署还有调试插件Vue.js devtools
    tableTD中添加对角斜线
    前端面试题及答案,理论知识
  • 原文地址:https://www.cnblogs.com/hedongfei/p/11746495.html
Copyright © 2011-2022 走看看