私はneo4jで春のデータを使用していました。
アノテーションを使用@Query
してクエリをリポジトリに配置しました。クエリは次のとおりです。
@Query(value = "START me=node({0}), friend=node({1}) "
+ "MATCH p=shortestPath(me-[:ACTIVEFRIEND*..]->friend)"
+ " RETURN p")
public Iterable<EntityPath<User, User>> getShortestPathBetween(User a, User b);
コントローラーでは、次のようにアクセスしています
Iterable<EntityPath<User, User>> shortestPathBetween = this.queryService.getShortestPathBetween(user, friend);
for (EntityPath<User, User> path : shortestPathBetween) {
Iterator<User> iter = path.<User>nodeEntities().iterator();
}
にアクセスしようとするとpath.nodeEntities
、次のエラーが発生します。
ネストされた例外は java.lang.NullPointerException] であり、根本原因 は org.springframework.data.neo4j.support.path.ConvertingEntityPath.nodes(ConvertingEntityPath.java:137) の org.springframework.data.neo4j.supportの
java.lang.NullPointerExceptionです。 .path.ConvertingEntityPath.nodeEntities(ConvertingEntityPath.java:69) com.laindain.cms.controller.QueryController.getShortestPathBetween(QueryController.java:194) で
sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド) でorg.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212) の .invoke(Method.java:601) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) ) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) で org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) で org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) でorg.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) で org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) で org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:882) で org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) で javax.servlet.http.HttpServlet.service(HttpServlet.java:647) で javax.servlet.http で。 org.apache の HttpServlet.service(HttpServlet.java:728)。catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 222) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) で org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) で org.apache.catalina.core.StandardHostValve .invoke(StandardHostValve.java:171) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) org. apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) で org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) で org.apache.coyote.AbstractProtocol$AbstractConnectionHandler .process(AbstractProtocol.java:589) で org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) でjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) で java.lang.Thread.run(Thread.java:722)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1110) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) で java.lang.Thread.run(Thread.java:722) でjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1110) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) で java.lang.Thread.run(Thread.java:722) で
誰かがこれについて私を助けてくれれば幸いです。
ありがとうヘマント