Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.springframework.aop.AOPINotificationException:通知的Null返回值与:public abstract char的基元返回类型不匹配_Java_Jpa - Fatal编程技术网

Java org.springframework.aop.AOPINotificationException:通知的Null返回值与:public abstract char的基元返回类型不匹配

Java org.springframework.aop.AOPINotificationException:通知的Null返回值与:public abstract char的基元返回类型不匹配,java,jpa,Java,Jpa,我用列char定义了一个表,我定义了一个repo 查询以返回该列。现在,当db表中的数据为null时 对于特定条件,它会给我错误: org.springframework.aop.AopInvocationException: Null return value from advice does not match primitive return type for: public abstract char 下面是代码片段: import org.springframework.d

我用列char定义了一个表,我定义了一个repo 查询以返回该列。现在,当db表中的数据为null时 对于特定条件,它会给我错误:

org.springframework.aop.AopInvocationException: Null return value from 
advice does not match primitive return type for: public abstract char
下面是代码片段:

    import org.springframework.data.jpa.repository.JpaRepository;
    import org.springframework.data.jpa.repository.Query;
    import org.springframework.data.repository.query.Param;

    import com.marriott.sup.beans.StepWorkflow;

    public interface flowRepo extends JpaRepository<StepWorkflow, Long> {

        @Query(
                value = "SELECT s.status FROM flow s WHERE s.XREFID 
     = :xrefId order by "
                + "s.Datestarted desc limit 1",
                nativeQuery = true)
        public char findLatestSts(@Param("xrefId") Long xrefId);

    }

    public class flowService {

        public static char INPROGRESS = 'P';
        public static char SUCCESS = 'S';
        public static char ERROR = 'E';
        public static char NOTSTARTED = 'N';

        @Autowired
        private flowRepo Fl;

        /*some basic code in between and then i am trying to call the 
      function 
      defined in repo and assign it to a character variable
    */

    Sts = Fl.findLatestSts(xrefId);
    }

尝试使用
Character
而不是
char
。有一种情况是,当查询返回NULL时,正如您所知,Java中的基元类型不能在其中保存NULL。因此,使用该类型的对象,如
int->Integer,float->float,char->Character


或者,如果您确实需要使用原语,请将您的方法放在try-catch块中,以处理该问题。

您是否尝试过将
flowRepo
界面中方法的返回类型更改为
Character
char
是一个原语,因此
null
不是它的有效值
Character
是相应的包装类,它是一个非原语的
对象,因此
null
在那里很好。您好,我刚刚尝试过它,如果(Character.toStringFl.findLatestSts(xrefId))=null{stepSts='N';}或者{stepSts=Fl.findlatests,我现在就得到了空指针异常(xrefId);}2019-06-07 15:23:24.808错误205008---[nio-8080-exec-3]o.a.c.c.c.[/].[dispatcherServlet]:路径为[]的上下文中Servlet[dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为java.lang.NullPointerException]对于根本原因java.lang.NullPointerException:null@Daya我想,这个答案是对一个问题的回答。也许你应该接受它?
org.springframework.aop.AopInvocationException: Null return value from advice does not match primitive return type for: public abstract char org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:226) at com.sun.proxy.$Proxy108.findLatestSts(Unknown Source) at com.marriott.sup.service.StepWorkflowService.getserverStepstatus(StepWorkflowService.java:79) at com.marriott.sup.web.SampleRestController.getServerStepStatus(SampleRestController.java:91) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)