0

Can someone answer this question. Is it possible to have the spatial repository in a spring boot app in embedded mode?

  @Bean
       public GraphDatabaseService graphDatabaseService() {
          return new GraphDatabaseFactory().newEmbeddedDatabase("neo4j.db");
   }

by just adding the

<dependency>
  <groupId>org.neo4j</groupId>
  <artifactId>neo4j-spatial</artifactId>
  <version>0.9</version>
</dependency>

to your classpath?

I keep getting the error

Caused by: java.lang.IllegalArgumentException: No index provider 'spatial' found. Maybe the intended provider (or one more of its dependencies) aren't on the classpath or it failed to load. at org.neo4j.kernel.impl.coreapi.IndexManagerImpl.getIndexProvider(IndexManagerImpl.java:91) at org.neo4j.kernel.impl.coreapi.IndexManagerImpl.findIndexConfig(IndexManagerImpl.java:142) at org.neo4j.kernel.impl.coreapi.IndexManagerImpl.getOrCreateIndexConfig(IndexManagerImpl.java:209) at org.neo4j.kernel.impl.coreapi.IndexManagerImpl.getOrCreateNodeIndex(IndexManagerImpl.java:314) at org.neo4j.kernel.impl.coreapi.IndexManagerImpl.forNodes(IndexManagerImpl.java:302) at org.springframework.data.neo4j.support.DelegatingGraphDatabase.createIndex(DelegatingGraphDatabase.java:163) at org.springframework.data.neo4j.support.index.IndexProviderImpl.createIndex(IndexProviderImpl.java:91) at org.springframework.data.neo4j.support.index.IndexProviderImpl.getIndex(IndexProviderImpl.java:68) at org.springframework.data.neo4j.support.index.IndexProviderImpl.getIndex(IndexProviderImpl.java:108) at org.springframework.data.neo4j.support.mapping.EntityIndexCreator$2.doWithPersistentProperty(EntityIndexCreator.java:61) at org.springframework.data.neo4j.support.mapping.EntityIndexCreator$2.doWithPersistentProperty(EntityIndexCreator.java:57) at org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:294) at org.springframework.data.neo4j.support.mapping.EntityIndexCreator.ensureEntityIndexes(EntityIndexCreator.java:57) at org.springframework.data.neo4j.support.mapping.Neo4jMappingContext.updateStoredEntityType(Neo4jMappingContext.java:78) at org.springframework.data.neo4j.support.mapping.Neo4jMappingContext.addPersistentEntity(Neo4jMappingContext.java:71) at org.springframework.data.neo4j.support.mapping.Neo4jMappingContext.addPersistentEntity(Neo4jMappingContext.java:49) at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:257) at org.springframework.data.mapping.context.AbstractMappingContext.initialize(AbstractMappingContext.java:373) at org.springframework.data.neo4j.support.mapping.Neo4jMappingContext.initialize(Neo4jMappingContext.java:111) at org.springframework.data.mapping.context.AbstractMappingContext.afterPropertiesSet(AbstractMappingContext.java:363) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1562) ... 62 more

F.O.O
  • 4,730
  • 4
  • 24
  • 34

2 Answers2

0

Sure, you can have spring data neo4j + spring boot.

You can find the code I wrote here: https://github.com/inserpio/neo4art And a short post describing how I did it: https://inserpio.wordpress.com/2014/09/21/neo4art-moves-to-cloud-foundry-at-springone-2gx-2014/

Hope it can help!

Cheers, Lorenzo

inserpio
  • 206
  • 1
  • 3
  • Thanks but I see you are using the server rest implementation, I needed one that works with embedded. – F.O.O Mar 09 '15 at 15:35
  • I use both ones, but in the following class I configure the connection to neo4j in a embedded fashion: https://github.com/inserpio/neo4art/blob/master/src/main/java/it/inserpio/neo4art/boot/MyNeo4jConfiguration.java How can I help you? – inserpio Mar 09 '15 at 15:47
  • It appeared to be a problem with the neo4j spatial repository. After some research I found the right one. The http://docs.spring.io/spring-data/neo4j/docs/3.0.2.RELEASE/reference/html/programming-model.html#reference_spatial doesn't work. – F.O.O Mar 09 '15 at 19:37
0

Use this repository in your maven pom

            <repository>
                        <id>neo4j-contrib-releases</id>
                        <url>https://raw.github.com/neo4j-contrib/m2/master/releases</url>
                        <releases>
                            <enabled>true</enabled>
                        </releases>
                        <snapshots>
                            <enabled>false</enabled>
                        </snapshots>
                    </repository>
                    <repository>
                        <id>neo4j-contrib-snapshots</id>
                        <url>https://raw.github.com/neo4j-contrib/m2/master/snapshots</url>
                        <releases>
                            <enabled>false</enabled>
                        </releases>
                        <snapshots>
                            <enabled>true</enabled>
                        </snapshots>
                    </repository>

with the dependency

                <dependency>
                    <groupId>org.neo4j</groupId>
                    <artifactId>neo4j-spatial</artifactId>
                    <version>0.13-neo4j-2.1.2</version>
                </dependency>
F.O.O
  • 4,730
  • 4
  • 24
  • 34