Java 如何在同一spring boot应用程序中配置neo4j和cassandra存储库

Java 如何在同一spring boot应用程序中配置neo4j和cassandra存储库,java,spring,spring-boot,spring-data-neo4j,spring-data-cassandra,Java,Spring,Spring Boot,Spring Data Neo4j,Spring Data Cassandra,我已经使用spring数据分别使用spring boot配置了neo4j和cassandra存储库。然而,当我尝试在同一个项目中使用两个存储库时,它并没有像预期的那样工作 这是我的文件夹结构 -----org.test.project -----controller BarController FooController -----models -----dao -----cassandra BarDA

我已经使用spring数据分别使用spring boot配置了neo4j和cassandra存储库。然而,当我尝试在同一个项目中使用两个存储库时,它并没有像预期的那样工作

这是我的文件夹结构

-----org.test.project

 -----controller
      BarController
      FooController
 -----models
      -----dao
           -----cassandra
                BarDAO
                FooDAO
           -----neo4j
                BarDAO
                FooDAO
 -----repositories
      -----cassandra
           BarRepository
           FooRepository
      -----neo
           BarRepository 
           FooRepository
 -----services
      CassandraService (Has cassandra repositories @Autowired)
      NeoService(Has neo repositories @Autowired)
 TestApp.java
注意,所有存储库都使用各自的DAO扩展各自的spring数据存储库

当我使用此配置运行时,会出现以下错误

 Field airportRepository in org.test.project.TestApp required a bean of type 'org.test.project.repositories.cassandra.BarRepository' that could not be found.
 org.neo4j.ogm.exception.MappingException: No identity field found for class: org.rozzie.processor.models.dao.cassandra.FlightDAO
我尝试更改存储库名称。然后它开始工作了

第一个问题是,我们不能拥有相同的名称,因为它们在不同的软件包中,然后开始工作

虽然这次它开始工作了,但它在身份验证头中给出了一个错误

 org.neo4j.ogm.drivers.http.request.HttpRequestException: http://localhost:7474/db/data/transaction/commit: No authentication header supplied.
我已经添加了ogm.properties,就像我只使用neo4j存储库时那样。但他们似乎不再被应用。所以我在application.properties中添加了以下内容

 spring.data.neo4j.password=neo4j
 spring.data.neo4j.username=neo4j
第二个问题是,如何配置neo4j,就像配置neo4j一样?我在ogm.properties中定义了以下内容。如何将其应用于neo4j配置?

 #Driver, required
 driver=org.neo4j.ogm.drivers.bolt.driver.BoltDriver

 #URI of the Neo4j database, required. If no port is specified, the          
 #default port 7687 is used. Otherwise, a port can be specified with   
 #bolt://neo4j:password@localhost:1234

 URI=bolt://neo4j:neo4j@localhost

 #Connection pool size (the maximum number of sessions per URL),    
 #optional, defaults to 50

 connection.pool.size=150

 #Encryption level (TLS), optional, defaults to REQUIRED. Valid  
 #values are NONE,REQUIRED

 encryption.level=NONE
在进行上述更改后,现在给出以下错误

 Field airportRepository in org.test.project.TestApp required a bean of type 'org.test.project.repositories.cassandra.BarRepository' that could not be found.
 org.neo4j.ogm.exception.MappingException: No identity field found for class: org.rozzie.processor.models.dao.cassandra.FlightDAO

请注意,cassandra模型会引发neo4j.ogm异常。引擎盖下发生了什么如何在上述一个项目中使用spring boot配置这两个数据库?

这看起来spring boot自动配置无法同时处理多个spring数据项目

 #Driver, required
 driver=org.neo4j.ogm.drivers.bolt.driver.BoltDriver

 #URI of the Neo4j database, required. If no port is specified, the          
 #default port 7687 is used. Otherwise, a port can be specified with   
 #bolt://neo4j:password@localhost:1234

 URI=bolt://neo4j:neo4j@localhost

 #Connection pool size (the maximum number of sessions per URL),    
 #optional, defaults to 50

 connection.pool.size=150

 #Encryption level (TLS), optional, defaults to REQUIRED. Valid  
 #values are NONE,REQUIRED

 encryption.level=NONE
有关详细信息,请参阅文档

特别是,您应该仅将SDN模块指向neo4j存储库

@EnableNeo4jRepositories(basePackages = "org.test.project.repositories.neo")

卡桑德拉也是如此。

我在mongo中使用了neo4j。我看不出有什么问题。我想卡桑德拉也是这样。这是我所有的配置

@SpringBootApplication
@EnableConfigurationProperties
@EnableNeo4jRepositories("com.in.neo4j.repository.neo")
@EnableMongoRepositories("com.in.neo4j.repository.mongo")
public class Neo4JApplication {
    public static void main(String[] args) {
        SpringApplication.run(Neo4JApplication.class, args);
    }
}
在我的属性文件中

spring.data.neo4j.username=neo4j  
spring.data.neo4j.password=admin  

spring.data.mongodb.database=blah  
spring.data.mongodb.host=blahblah  
spring.data.mongodb.port=27017

你能展示你的java配置吗?你有
@EnableXRepositories
和ogm的
SessionFactory
等…@frant.hartm我是新来的Spring。当我分别试验spring-data-neo4j和spring-data-cassandra时,我没有特定的Java配置文件。答案的完整代码(正如我在开头所解释的)位于Thanx。这正是问题背后的问题。我应该在层次结构中的何处添加配置类?我还是JavaSpring的新手。所以感谢你在这方面的帮助。