В настоящее время я работаю над spring-data-neo4j и должен получить детей определенных узлов.Spring-data-neo4j NullPointerException при получении детей
Вот домен
@NodeEntity
public class GLNode {
@GraphId
private Long id;
@Property(name="description")
private ArrayList<String> desc;
public ArrayList<String> getDesc() {
return this.desc;
}
@Relationship(type = "GLRelationship")
private Collection<GLNode> children;
public Collection<GLNode> getChildren(){
return this.children;
}
}
здесь хранилище
@Query("MATCH (n:GLNode) WHERE id(n)={0} RETURN n")
GLNode getGLNodeFromId(Integer idOfNode);
В службе, я успешно получить узел, но получить нулевой указатель при попытке получить доступ к своим детям, как:
GLNode m = repo.getGLNodeFromId(0);
System.out.println(m.getChildren().iterator().next().getDesc().toString());
За исключением:
java.lang.NullPointerException
com.hersbitcloud.cancercloud.services.GLService.getGLNodes(GLService.java:40)
com.hersbitcloud.cancercloud.controllers.GLController.getGLNodes(GLController.java:36)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:497)
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.hersbitcloud.cancercloud.CORSFilter.doFilter(CORSFilter.java:24)
org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
Я уверен, что m
был успешно восстановлен. Что я здесь делаю неправильно?
спасибо.
Я думаю, что 'desc' никогда не будет инициализирован и NPE выкинут прямо перед' .iterator() ' – msparer