2016-09-05 2 views
0

여기에 많은 질문이 있습니다. 그러나 톤을 살펴본 결과 여전히 문제를 해결할 수 없었습니다.JPA 명명 된 쿼리를 호출 할 때 null 포인터 예외가 발생했습니다

명명 된 쿼리를 호출하려고합니다. 나는 다음과 같습니다

@Stateless 
public class ClientCFacade extends AbstractFacade<ClientC> { 

    @PersistenceContext(unitName = "the_database") 
    private EntityManager em; 

    @Override 
    protected EntityManager getEntityManager() { 
     return em; 
    } 

    public ClientCFacade() { 
     super(ClientC.class); 
    } 

    public List<ClientC> findByClientId(Integer clientId) { 
     try { 

      List<ClientC> clientCsList = em.createNamedQuery(ClientCs.FIND_BY_CLIENT_ID, ClientC.class). 
        setParameter("clientId", clientId) 
        .getResultList(); 


      return clientCsList; 

     } catch (NoResultException ex) { 
      return null; 
     } 
    } 

모든 getter 및 setter와

@Entity 
@Table(name = "clients") 
@NamedQueries({ 
     @NamedQuery(name = ClientCs.FIND_BY_CLIENT_ID, 
       query = "select cc" + 
         "from " + 
         "ClientCs cc " + 
         "WHERE " + 
         "cc.clientId= :clientId") 
}) 
public class ClientCs implements Serializable { 

    private static final long serialVersionUID = 1L; 
    public static final String FIND_BY_CLIENT_ID = "ClientCs.findByClientId"; 

@Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "id") 
    private Integer id; 
    @Column(name = "client_id", nullable = false) 
    private Integer clientId; 

.

List<ClientC> Cs = clientCFacade.findByClientId(1234); 

내 오류는 다음과 같습니다 :

java.lang.NullPointerException 
      at the.package.name.ClientCFacade.findByClientId(ClientCFacade.java:56) 
      at the.package.name.service.ApiService.runTransaction(ApiService.java:413) 
      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:483) 
      at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 
      at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) 
      at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) 
      at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) 
      at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
      at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 
      at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
      at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 
      at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) 
      at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) 
      at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) 
      at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) 
      at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) 
      at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) 
      at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) 
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
      at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
      at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 
      at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 
      at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) 
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) 
      at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) 
      at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) 
      at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) 
      at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) 
      at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) 
      at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
      at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) 
      at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) 
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) 
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) 
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) 
      at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) 
      at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) 
      at java.lang.Thread.run(Thread.java:745) 

어떤 도움이 심각 감사

와 나는 같이 호출.

+0

어떻게하는 것이 훨씬 컴파일 않습니다 방법 public List<ClientC> findByClientId(String clientId)

그것은 다음과 같아야에서 클라이언트 ID와 ID를 교체? 당신은 Integer를 기대하는 메소드에 문자열을 넘겨주고 있습니다 ... – unwichtich

+0

'id'라는 매개 변수를 설정하려하지만 NamedQuery의 매개 변수는'clientId'로 정의됩니다. 또한 NamedQuery에서'select cc'와'from'사이에 공간이 없습니다. –

+0

내 코드에서이 문제를 해결하고 다시 실행했습니다. 동일한 오류가 발생했습니다. – Dee

답변

0

명명 된 쿼리에없는 매개 변수를 설정하고 있습니다.

List<ClientC> clientCsList = em.createNamedQuery(ClientCs.FIND_BY_CLIENT_ID, ClientC.class). 
       setParameter("clientId", clientId) 
       .getResultList(); 
+0

나는이 변화를 만들었고 그것을 다시 시도했다. 그래도 나는 여전히 같은 오류가 발생합니다. – Dee

+0

발생 된 예외와 함께 더 많은 스택 추적을 업로드하십시오. 여전히 많은 컴파일 오류가 있으므로 코드를 업데이트하십시오. –

+0

전체 스택 추적을 업로드하고 매개 변수 이름을 수정했습니다. – Dee