spring-data-neo4j:第一个查询(会话?)问题

时间:2019-01-07 16:41:05

标签: spring neo4j spring-data spring-data-neo4j

我是Neo4j的新手。 我在spring应用程序中通过spring-data-neo4j使用它。 当我启动应用程序时,通常但并非总是如此,第一个数据库查询会给我一条消息:

java.lang.NullPointerException: null    at
org.neo4j.ogm.drivers.bolt.request.BoltRequest.executeRequest(BoltRequest.java:149)
~[neo4j-ogm-bolt-driver-3.1.5.jar:3.1.5]    at
org.neo4j.ogm.drivers.bolt.request.BoltRequest.execute(BoltRequest.java:135)

 java.lang.NullPointerException: null   at
org.neo4j.ogm.metadata.reflect.EntityAccessManager.getIterableField(EntityAccessManager.java:431)
 ~[neo4j-ogm-core-3.1.5.jar:3.1.5]  at
 org.neo4j.ogm.context.GraphEntityMapper.mapOneToMany(GraphEntityMapper.java:550)

我怀疑这是会话的问题,因为如果我在此之后立即调用相同的代码部分,则会收到错误消息,该错误不再发生,并且在重新启动应用程序之前不会再发生。 同样,它不会在所有第一个查询中发生:有时我启动了应用程序,并且处理了第一个(和后续)查询而没有任何错误。

我试图延迟第一次查询调用,但是似乎没有效果。

这是我的Neo4j配置:

@Configuration
@EnableNeo4jRepositories("com.myApp.data.repository")
@EnableTransactionManagement
@EntityScan("com.myApp.data.model")
public class Neo4JConfig {

    public static final String URL = "bolt://neo4j:myApp@localhost";

    @Bean
    public org.neo4j.ogm.config.Configuration getConfiguration() {
        org.neo4j.ogm.config.Configuration configuration = new Builder().uri(URL).build();
        return configuration;
    }

    @Bean
    public SessionFactory sessionFactory() {
        return new SessionFactory(getConfiguration(), "com.myApp.data.model");
    }

    @Bean
    public Neo4jTransactionManager transactionManager() {
        return new Neo4jTransactionManager(sessionFactory());
    }

}

还有我的pom.xml:

<dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-neo4j</artifactId>
        </dependency>


        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>


    </dependencies>

所有数据库部分都在单独的模块中(上面带有config和pom)。

关于这里发生的事情有什么想法吗?

Thx

0 个答案:

没有答案