第一次尝试Neo4J OGM时在执行Session.load()时发生NullPointerException

第一次尝试Neo4J OGM时在执行Session.load()时发生NullPointerException,neo4j,neo4j-ogm,Neo4j,Neo4j Ogm,我第一次在its上给出的简单示例和its的帮助下试用Neo4J OGM 我正在运行neo4j-community-3.0.0-M05 我得到以下例外情况: Exception in thread "main" java.lang.NullPointerException at org.neo4j.ogm.session.delegates.LoadOneDelegate.lookup(LoadOneDelegate.java:56) at org.neo4j.ogm.sessio

我第一次在its上给出的简单示例和its的帮助下试用Neo4J OGM

我正在运行
neo4j-community-3.0.0-M05

我得到以下例外情况:

Exception in thread "main" java.lang.NullPointerException
    at org.neo4j.ogm.session.delegates.LoadOneDelegate.lookup(LoadOneDelegate.java:56)
    at org.neo4j.ogm.session.delegates.LoadOneDelegate.load(LoadOneDelegate.java:49)
    at org.neo4j.ogm.session.delegates.LoadOneDelegate.load(LoadOneDelegate.java:39)
    at org.neo4j.ogm.session.Neo4jSession.load(Neo4jSession.java:137)
    at org.neo4j.ogm.session.Capability$LoadOne$load.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:130)
    at Main.main(Main.groovy:24)
异常发生在
Main.groovy
的第24行。我调试过。它发生在
session.load()调用上

我觉得这一定是因为我在设置依赖项时犯了一些错误。但是我想不出来

这是我的代码:

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mahesha999.exp</groupId>
  <artifactId>Neo4JTemp</artifactId>
  <version>0.0.1-SNAPSHOT</version>      
    <dependencies>
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-ogm-core</artifactId>
            <version>2.0.4</version>
        </dependency>   
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-ogm-http-driver</artifactId>
            <version>2.0.4</version>
        </dependency>   
    </dependencies>    
</project>
Actor.groovy

import org.neo4j.ogm.annotation.NodeEntity
import org.neo4j.ogm.annotation.Relationship
import org.neo4j.ogm.annotation.GraphId

@NodeEntity
public class Actor {    
    @GraphId
    private Long id;
    private String name;

    @Relationship(type = "ACTS_IN", direction = "OUTGOING")
    private Set<Movie> movies = new HashSet<>();

    public Actor() { }

    public Actor(String name) {
        this.name = name;
    }

    public void actsIn(Movie movie) {
        movies<< movie;
        movie.getActors() << this;
    }
}
import org.neo4j.ogm.annotation.NodeEntity
import org.neo4j.ogm.annotation.Relationship
import org.neo4j.ogm.annotation.GraphId

@NodeEntity
public class Movie {    
    @GraphId
    private Long id;
    private String title;
    private int released;

    @Relationship(type = "ACTS_IN", direction = "INCOMING")
    List<Actor> actors = [];

    public Movie() {}

    public Movie(String title, int year) {
        this.title = title;
        this.released = year;
    }    
}
1    import org.neo4j.ogm.session.Session
2    import org.neo4j.ogm.session.SessionFactory
3    
4    class Main {
5       
6       static main(def args)
7       {
8           //Set up the Session
9           SessionFactory sessionFactory = new SessionFactory("movies.domain");
10          Session session = sessionFactory.openSession();
11          
12          Movie movie = new Movie("The Matrix", 1999);
13          
14          Actor keanu = new Actor("Keanu Reeves");
15          keanu.actsIn(movie);
16          
17          Actor carrie = new Actor("Carrie-Ann Moss");
18          carrie.actsIn(movie);
19      
20          //Persist the movie. This persists the actors as well.
21          session.save(movie);
22                  
23          //Load a movie
24          Movie matrix = session.load(Movie.class, movie.id);
25          for(Actor actor : matrix.getActors()) {
26              System.out.println("Actor: " + actor.name);
27          }
28      }   
29    }
正在扫描的包(movies.domain)似乎不包含您的实体类。这就是为什么不保存实体,并且id为空

OGM参考指南(含教程)如下:

还有一个小示例应用程序:

正在扫描的包(movies.domain)似乎不包含您的实体类。这就是为什么不保存实体,并且id为空

OGM参考指南(含教程)如下:


还有一个小示例应用程序:

您使用哪个版本的OGM?我无法用2.0.4复制它,它是否应该是
pom.xml
中指定的
2.0.4
?顺便问一下,它对你有用吗?在调试模式下,在
Main.groovy
的第21行,会话不是
null
。啊,对了,对不起。是的,我使用了你的pom.xml,它对我来说很好。我没有看到的是你的演员和电影包——它们在movies.domain中,对吧?啊啊啊,没看到。浏览OGM手册,主要是浏览代码(没有解释,有点大:p)&没有代码有
package movies.domain在顶部。我想知道这个参数对于
SessionFactory
构造函数是什么。API说得对:
SessionFactory(字符串…包)
。但这也没有意义。我的坏…对Spring来说太新了,点击我,必须从中加载bean/config。他主要是.NET开发人员。无论如何,感谢您尝试我的代码和pin码指向问题。Btn是他们的任何更多关于OGM的图坦卡蒙,可能会更一步一步?将添加一些资源到我的答案,请接受!谢谢你使用哪种版本的OGM?我无法用2.0.4复制它,它是否应该是
pom.xml
中指定的
2.0.4
?顺便问一下,它对你有用吗?在调试模式下,在
Main.groovy
的第21行,会话不是
null
。啊,对了,对不起。是的,我使用了你的pom.xml,它对我来说很好。我没有看到的是你的演员和电影包——它们在movies.domain中,对吧?啊啊啊,没看到。浏览OGM手册,主要是浏览代码(没有解释,有点大:p)&没有代码有
package movies.domain在顶部。我想知道这个参数对于
SessionFactory
构造函数是什么。API说得对:
SessionFactory(字符串…包)
。但这也没有意义。我的坏…对Spring来说太新了,点击我,必须从中加载bean/config。他主要是.NET开发人员。无论如何,感谢您尝试我的代码和pin码指向问题。Btn是他们的任何更多关于OGM的图坦卡蒙,可能会更一步一步?将添加一些资源到我的答案,请接受!谢谢
1    import org.neo4j.ogm.session.Session
2    import org.neo4j.ogm.session.SessionFactory
3    
4    class Main {
5       
6       static main(def args)
7       {
8           //Set up the Session
9           SessionFactory sessionFactory = new SessionFactory("movies.domain");
10          Session session = sessionFactory.openSession();
11          
12          Movie movie = new Movie("The Matrix", 1999);
13          
14          Actor keanu = new Actor("Keanu Reeves");
15          keanu.actsIn(movie);
16          
17          Actor carrie = new Actor("Carrie-Ann Moss");
18          carrie.actsIn(movie);
19      
20          //Persist the movie. This persists the actors as well.
21          session.save(movie);
22                  
23          //Load a movie
24          Movie matrix = session.load(Movie.class, movie.id);
25          for(Actor actor : matrix.getActors()) {
26              System.out.println("Actor: " + actor.name);
27          }
28      }   
29    }