spring-data-neo4j: проблема с первым запросом (сессией?) - PullRequest
0 голосов
/ 07 января 2019

Я новичок в 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

...