【问题标题】:why have an NullPointerException that I execute the request? [duplicate]为什么我执行请求时出现 NullPointerException? [复制]
【发布时间】:2020-05-08 16:06:28
【问题描述】:

我计算从 2 个请求中获取的变量的总和,结果被恢复,但是当我想利用它时,会抛出 NullPointerException:

 public List<Object[]> buildQuery4SConsistencyCheck(Societe societe,ParamSociete paramSociete,Date 
 periode) throws TechnicalNGEException {

    String sql="select SUM(INTERNAL_AMOUNT) from (select   vR.montant_valorise as INTERNAL_AMOUNT"
            + " from sigma02.valorisation_location vR inner join sigma02.eds  soc on 
                  vR.societe=soc.id_eds "
            + "inner join sigma02.chantier  ch on vR.compte_de_recette=ch.id_eds"
            + " inner join sigma02.edsm on  vR.id_edsm=edsm.id_edsm inner join sigma02.eds  "
            + "edsR on vR.compte_de_recette=edsR.id_eds where vR.montant_facture !=0 and 
                   vR.statut_traitment "
            + "like 'F' and vR.societe = 11 and vR.date_piece='2018-1-31' union all select "
            + " vDep.montant_valorise as INTERNAL_AMOUNT  FROM sigma02.valorisation_location"
            + " vDep inner join sigma02.eds soc on vDep.societe=soc.id_eds "
            + "inner join sigma02.eds as edsDep on vDep.chantier_materiel=edsDep.id_eds "
            + "inner join sigma02.chantier as chDep on vDep.chantier_materiel=chDep.id_eds"
            + " inner join sigma02.edsm on vDep.id_edsm=edsm.id_edsm  WHERE vDep.montant_facture<>0"
            + " and vDep.statut_traitment='F' and vDep.societe=11 and vDep.date_piece='2018-1-31'  ) 
     as somme";
     List<Object[]> result = null;
        try {
            SQLQuery query = session.createSQLQuery(sql);
            result =  query.list();

        } catch (HibernateException e) {
            bloqException(e);
        }

        return result;

}

在抛出异常的这一行:

 @Autowired
private ValorisationLocationDAO valorisationLocationDAO;
 Object[]   c= 
 valorisationLocationDAO.buildQuery4SConsistencyCheck(societe,paramSociete,periode).get(0);

调试后我得到这个结果:

[93648.40, null, null, null, null, null, null, null, null, null]

这是错误:

  Caused by: java.lang.NullPointerException
at com.nge.sigma.reprise.util.BatchLogger.log(BatchLogger.java:205) [sigma- 
 reprise-0.0.14-SNAPSHOT.jar:]
at com.nge.sigma.reprise.util.BatchLogger.logDebug(BatchLogger.java:193) 
[sigma-reprise-0.0.14-SNAPSHOT.jar:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_221]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.8.0_221]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.8.0_221]
at java.lang.reflect.Method.invoke(Unknown Source) [rt.jar:1.8.0_221]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) [spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) [spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) [spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52) [spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:52) [spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) [spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) [spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at com.sun.proxy.$Proxy447.logDebug(Unknown Source)

【问题讨论】:

标签: java postgresql hibernate


【解决方案1】:

异常在哪里?没有 NullPointerException。 看起来您对具有 null valueNullPointerException 的变量感到困惑,因为您正在返回 SUM(INTERNAL_AMOUNT);其值为93648.40 的单个值。其他变量如预期为空。

【讨论】:

  • 我不明白为什么会出现这个错误。我重新编辑问题
【解决方案2】:

这是一个强制转换问题,我将方法的返回类型更改为 int

 public int buildQuery4SConsistencyCheck(Societe societe,Date periode) throws 
 TechnicalNGEException {
    String sql="select SUM(INTERNAL_AMOUNT) from (select   vR.montant_valorise as 
    INTERNAL_AMOUNT"
        + " from sigma02.valorisation_location vR inner join sigma02.eds  soc on 
              vR.societe=soc.id_eds "
        + "inner join sigma02.chantier  ch on vR.compte_de_recette=ch.id_eds"
        + " inner join sigma02.edsm on  vR.id_edsm=edsm.id_edsm inner join sigma02.eds  "
        + "edsR on vR.compte_de_recette=edsR.id_eds where vR.montant_facture !=0 and 
               vR.statut_traitment "
        + "like 'F' and vR.societe = 11 and vR.date_piece='2018-1-31' union all 
    select vDep.montant_valorise as INTERNAL_AMOUNT  FROM 
       sigma02.valorisation_location"
        + " vDep inner join sigma02.eds soc on vDep.societe=soc.id_eds "
        + "inner join sigma02.eds as edsDep on vDep.chantier_materiel=edsDep.id_eds "
        + "inner join sigma02.chantier as chDep on 
           vDep.chantier_materiel=chDep.id_eds"
        + " inner join sigma02.edsm on vDep.id_edsm=edsm.id_edsm  WHERE 
           vDep.montant_facture<>0"
        + " and vDep.statut_traitment='F' and vDep.societe=11 and 
               vDep.date_piece='2018-1-31'  ) 
        as somme";       
    int result =-1;
        try {
            SQLQuery query = session.createSQLQuery(sql);
                 // cast 
             result = ((BigDecimal) query.uniqueResult()).intValue();


        } catch (HibernateException e) {
            bloqException(e);
        }

        return result;


}

【讨论】:

    猜你喜欢
    • 2021-05-15
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2019-10-17
    相关资源
    最近更新 更多