2015-12-26 2 views
0

Когда я пытаюсь использовать нулевое значение на querydsl конструктору:Null постоянны на querydsl конструктору

query_fetch.list(new QFoo(foo.id, .., null)); 

я получил исключение:

java.lang.NullPointerException: at index 9 

И когда я использую NullExpression:

query_fetch.list(new QFOO(foo.id, .., new NullExpression<>(String.class))); 

У меня есть еще одно исключение:

java.lang.IllegalArgumentException 

StackTrace:

janv. 18, 2016 10:54:05 AM org.apache.catalina.core.StandardWrapperValve invoke 
GRAVE: Servlet.service() for servlet [mvc-dispatcher] in context with path [/AO] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException] with root cause 
java.lang.IllegalArgumentException 
    at sun.reflect.GeneratedConstructorAccessor1932.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysema.query.types.ConstructorExpression.newInstance(ConstructorExpression.java:133) 
    at com.mysema.query.jpa.FactoryExpressionTransformer.transformTuple(FactoryExpressionTransformer.java:50) 
    at org.hibernate.hql.internal.HolderInstantiator.instantiate(HolderInstantiator.java:95) 
    at org.hibernate.loader.hql.QueryLoader.getResultList(QueryLoader.java:464) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369) 
    at org.hibernate.loader.Loader.list(Loader.java:2364) 
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:496) 
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387) 
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:231) 
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264) 
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) 
    at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573) 
    at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:449) 
    at sun.reflect.GeneratedMethodAccessor1177.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:333) 
    at com.sun.proxy.$Proxy128.getResultList(Unknown Source) 
    at com.mysema.query.jpa.impl.AbstractJPAQuery.getResultList(AbstractJPAQuery.java:195) 
    at com.mysema.query.jpa.impl.AbstractJPAQuery.list(AbstractJPAQuery.java:243) 
    at service.administration.RootServ.get_ao_for_root_ref(RootServ.java:179) 
    at controller.administration.ValidationAO.get_page(ValidationAO.java:88) 
    at controller.administration.ValidationAO.ao_root_ajax(ValidationAO.java:75) 
    at sun.reflect.GeneratedMethodAccessor1254.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    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) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:67) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217) 
    at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:106) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
    at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:142) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Unknown Source) 
+0

Чего добиваются? – Simon

+0

@Simon Я хочу, чтобы пустые значения в моем конструкторе – Youssef

+0

Не могли бы вы предоставить стек? –

ответ

0

В случае, если вы хотите выбрать объекты Foo, просто попробуйте:

query_fetch.list(QFoo.foo); 

В случае, если вы хотите, чтобы выбрать что-то, что не соответствует своему классу Foo, вы должны рискнуть взглядом на класс ConstructorExpression.

+0

Нет, я хочу поместить нулевые значения в свой конструктор – Youssef

+0

Тогда попробуйте: list (ConstructorExpression.create (Foo.class, foo.id, .., новое NullExpression <> (Integer.class))) – Simon

Смежные вопросы