ContexteCréation d'une SessionFactory Neo4j dans NRS 5.0.0
J'ai un projet Maven, les données du printemps Neo4j. Il poste et obtient un seul objet. J'essaie d'ajouter des sessions, mais je rencontre des erreurs.
Il y a docs: https://docs.spring.io/spring-data/neo4j/docs/current/reference/html/#reference:session
Ils conseilleriez:
@Configuration
@EnableNeo4jRepositories(basePackages = "org.neo4j.example.repository")
@EnableTransactionManagement
public class MyConfiguration {
@Bean
public SessionFactory sessionFactory() {
// with domain entity base package(s)
return new SessionFactory(configuration(), "org.neo4j.example.domain");
}
@Bean
public org.neo4j.ogm.config.Configuration configuration() {
ConfigurationSource properties = new ClasspathConfigurationSource("ogm.properties");
org.neo4j.ogm.config.Configuration configuration = new org.neo4j.ogm.config.Configuration.Builder(properties)
return configuration;
}
@Bean
public Neo4jTransactionManager transactionManager() {
return new Neo4jTransactionManager(sessionFactory());
}
}
Mais quand je copie le second @Bean
mes marques d'éclipse: new org.neo4j.ogm.config.Configuration.Builder(properties)
en rouge et suggère que je change la configuration de type à Builder. Ensuite garde suggérant des changements jusqu'à ce que la 2ème @Bean
ressemble:
@Bean
public Builder configuration() {
ConfigurationSource properties = new ClasspathConfigurationSource("ogm.properties");
Builder configuration = new org.neo4j.ogm.config.Configuration.Builder(properties);
return configuration;
}
Mais le 1er @Bean
cesse de fonctionner parce qu'elle attend un configuration()
.
Question
Alors, comment faire ajouter une SessionFactory lorsque la suggestion du document actuel ne fonctionne pas? Je l'ai regardé beaucoup d'autres exemples, mais ils utilisent tous les anciennes versions avec des choses comme dépréciées Neo4jConfiguration
Remarques
Mon pom.xml n'a pas de parents et ces dépendances et dépôts:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>5.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.0.M3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>2.0.0.M3</version>
</dependency>
<dependency>
<groupId>com.voodoodyne.jackson.jsog</groupId>
<artifactId>jackson-jsog</artifactId>
<version>1.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>spring-libs-release</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/libs-release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
MISE À JOUR 1
En supprimant tout @Bean
s et en testant cette personne: Why does Neo4j OGM with Spring Boot 2.0.0.M4 apparently require the embedded driver? comme ceci:
@Configuration
@EnableNeo4jRepositories("com.myproject.repository")
@EnableTransactionManagement
public class ServiceRegistryConfiguration {
@Bean
public org.neo4j.ogm.config.Configuration configuration() {
return new org.neo4j.ogm.config.Configuration.Builder(new ClasspathConfigurationSource("ogm.properties")).build();
}
@Bean
public SessionFactory sessionFactory() {
return new SessionFactory(configuration(), "com.myproject.domain");
}
}
a donné lieu à cette erreur:
...Factory method 'configuration' threw exception; nested exception is java.lang.NullPointerException
mon fichier ogm.properties
est:
server.port=8585
spring.data.neo4j.uri=bolt://localhost
spring.data.neo4j.username=myuser
spring.data.neo4j.password=mypass