2016-02-24 111 views
0

使用Spring和Hibernate我已經創建使用@Query註釋的查詢,如下所示:org.postgresql.util.PSQLException:ERROR:運營商不存在:BIGINT = BYTEA

@Repository 
public interface SampleDAO extends CrudRepository<Sample, Long> { 

    @Query("select count(s) from Sample s where dna_study_id = ?1") 
    Integer getSamplesXAnalysis(Long id); 

} 

這是Sample類:

@Entity 
@Table(name="sample") 
public class Sample implements Serializable { 

    @Id 
    @GeneratedValue 
    @Column(name="sample_id") 
    private Long sample_id; 
    @Column(name="id") 
    private String id; 
    @Column(name="description") 
    private String description; 
    @ManyToOne 
    @JoinColumn(name="dna_study_id") 
    private DNA_Study study; 

    public Sample() { } 

    public Sample(String id, String description, DNA_Study study) { 
     this.id = id; 
     this.description = description; 
     this.study = study; 
    } 

    public Long getSample_id() { 
     return sample_id; 
    } 

    public void setSample_id(Long sample_id) { 
     this.sample_id = sample_id; 
    } 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    public DNA_Study getDna_study_id() { 
     return study; 
    } 

    public void setDna_study_id(DNA_Study study) { 
     this.study = study; 
    } 
} 

當我從客戶端撥打: 「URL/getsamplesxanalysis」 它執行:

@CrossOrigin 
@RequestMapping("/getsamplesxanalysis") 
public Integer getSamplesXAnalysis() { 

    context = new ClassPathXmlApplicationContext("applicationContext.xml"); 
    SampleDAO dao = context.getBean(SampleDAO.class); 
    return dao.getSamplesXAnalysis((long) 1); 
} 

沒有錯誤或異常,我收到結果。但是,如果我嘗試使用參數的URL,例如: 「URL/getsamplesxanalysis/2」,它執行:

@CrossOrigin 
    @RequestMapping("/getsamplesxanalysis/{id}") 
    public Integer getSamplesXAnalysis(@PathParam("id") Long id) { 

     context = new ClassPathXmlApplicationContext("applicationContext.xml"); 
     SampleDAO dao = context.getBean(SampleDAO.class); 
     return dao.getSamplesXAnalysis(id); 
    } 

,我得到一個異常: org.postgresql.util.PSQLException:ERROR:運算符不存在:bigint = bytea 提示:沒有運算符匹配給定的名稱和參數類型。您可能需要添加明確的類型轉換

因此,轉換參數typem時必定存在問題。我期待着,但是當查詢被排除時我沒有找到任何解決方案。


EDITED 改變返回dao.getSamplesXAnalysis(ID)後;返回dao.getSamplesXAnalysis(id.longValue());

的NullPointerException跡:

Hibernate: 
    select 
     count(sample0_.sample_id) as col_0_0_ 
    from 
     sample sample0_ 
    where 
     dna_study_id=? 
2016-02-24 12:33:06.917 INFO 1956 --- [nio-8080-exec-3] o.s.c.s.ClassPathXmlApplicationContext : Refreshing org[email protected]277d9: startup date [Wed Feb 24 12:33:06 CET 2016]; root of context hierarchy 
2016-02-24 12:33:06.918 INFO 1956 --- [nio-8080-exec-3] o.s.b.f.xml.XmlBeanDefinitionReader  : Loading XML bean definitions from class path resource [applicationContext.xml] 
2016-02-24 12:33:07.029 INFO 1956 --- [nio-8080-exec-3] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring 
2016-02-24 12:33:07.032 INFO 1956 --- [nio-8080-exec-3] o.s.j.d.DriverManagerDataSource   : Loaded JDBC driver: org.postgresql.Driver 
2016-02-24 12:33:07.035 INFO 1956 --- [nio-8080-exec-3] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'jpaData' 
2016-02-24 12:33:07.035 INFO 1956 --- [nio-8080-exec-3] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ 
    name: jpaData 
    ...] 
2016-02-24 12:33:07.270 INFO 1956 --- [nio-8080-exec-3] org.hibernate.dialect.Dialect   : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect 
2016-02-24 12:33:07.273 INFO 1956 --- [nio-8080-exec-3] o.h.e.jdbc.internal.LobCreatorBuilder : HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException 
2016-02-24 12:33:07.296 INFO 1956 --- [nio-8080-exec-3] o.h.h.i.ast.ASTQueryTranslatorFactory : HHH000397: Using ASTQueryTranslatorFactory 
2016-02-24 12:33:07.346 INFO 1956 --- [nio-8080-exec-3] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000228: Running hbm2ddl schema update 
2016-02-24 12:33:07.347 INFO 1956 --- [nio-8080-exec-3] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000102: Fetching database metadata 
2016-02-24 12:33:07.374 INFO 1956 --- [nio-8080-exec-3] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000396: Updating schema 
2016-02-24 12:33:07.414 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000261: Table found: public.datasource 
2016-02-24 12:33:07.414 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000037: Columns: [link, name, data_source_id] 
2016-02-24 12:33:07.414 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000108: Foreign keys: [] 
2016-02-24 12:33:07.415 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000126: Indexes: [datasource_pkey] 
2016-02-24 12:33:07.446 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000261: Table found: public.dna_study 
2016-02-24 12:33:07.446 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000037: Columns: [date, dna_study_id, name, description] 
2016-02-24 12:33:07.446 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000108: Foreign keys: [] 
2016-02-24 12:33:07.446 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000126: Indexes: [dna_study_id] 
2016-02-24 12:33:07.478 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000261: Table found: public.sample 
2016-02-24 12:33:07.478 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000037: Columns: [dna_study_id, sample_id, description, id] 
2016-02-24 12:33:07.478 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000108: Foreign keys: [fk_hhiykwraml4x7uwou4l1o56df] 
2016-02-24 12:33:07.478 INFO 1956 --- [nio-8080-exec-3] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000126: Indexes: [sample_pkey] 
2016-02-24 12:33:07.478 INFO 1956 --- [nio-8080-exec-3] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000232: Schema update complete 
2016-02-24 12:33:07.482 WARN 1956 --- [nio-8080-exec-3] o.h.j.i.EntityManagerFactoryRegistry  : HHH000436: Entity manager factory name (jpaData) is already registered. If entity manager will be clustered or passivated, specify a unique value for property 'hibernate.ejb.entitymanager_factory_name' 
2016-02-24 12:33:07.537 ERROR 1956 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause 
    java.lang.NullPointerException: null 
     at com.gembiosoft.gemdomus.rest.SampleController.getSamplesXAnalysis(SampleController.java:44) ~[classes/:na] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_74] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_74] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_74] 
     at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_74] 
     at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_74] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_74] 
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.0.30.jar:8.0.30] 
     at java.lang.Thread.run(Thread.java:745) [na:1.8.0_74] 

EDITED 2 改變參數的方法從長到長:

public Integer getSamplesXAnalysis(@PathParam("id") long id) { ... } 

返回IlelgalStateException:

java.lang.IllegalStateException: Optional long parameter 'id' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type. 
    at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.handleNullValue(AbstractNamedValueMethodArgumentResolver.java:205) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:98) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:78) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:162) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:129) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_74] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_74] 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.0.30.jar:8.0.30] 
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_74] 
+0

長不長。嘗試'返回dao.getSamplesXAnalysis(id.longValue());' – Frank

+0

嗯現在返回NullPointerException – Dexter

+0

所以它看起來你的id是'null'。你能證實這一點嗎? – Frank

回答

0

這裏作爲一個答案:

的NPE發生在你的SampleController:

SampleController.getSamplesXAnalysis(SampleController.java:44) 

哪條線是44?我會說這是

return dao.getSamplesXAnalysis(id.longValue()); 

所以可能有兩件事情可以爲空:dao或id。我猜這是id不是道。我相信你用一個id來呼叫你的控制器,但是這個id並沒有達到你的方法。

使用@PathVariable而不是@PathParam,一切都應該沒問題。


編輯

原因,它是空的,因爲@PathParam工作時的查詢參數的URL定義,例如:url/getsamplesxanalysis/?id=2。 由於我使用的是url/getsamplesxanalysis/2,因此需要@PathVariable。

  • @PathVariable是獲得從URI一些佔位(泉稱之爲一個URI模板)
  • @RequestParam是獲得一個參數

來源:@RequestParam vs @PathVariable