spring数据neo4j使用现有数据库

spring数据neo4j使用现有数据库,neo4j,spring-data,spring-data-neo4j,Neo4j,Spring Data,Spring Data Neo4j,我使用的是Spring数据Neo4j,在Spring中创建了一个应用程序。我可以在JUnit测试用例的帮助下运行我的应用程序。但每次我运行测试用例时,它都会在使用指定的目录路径中创建一个新数据库。这将在Eclipse中我的工作区所在的同一位置创建db 我已经在我的ubuntu中安装了Neo4j debian软件包,默认数据库位于/var/lib/Neo4j/data/graph.db。我希望我的应用程序使用此数据库,而不是在target/neo4j db中创建数据库。我试图用/var/lib/n

我使用的是Spring数据Neo4j,在Spring中创建了一个应用程序。我可以在JUnit测试用例的帮助下运行我的应用程序。但每次我运行测试用例时,它都会在使用
指定的目录路径中创建一个新数据库。这将在Eclipse中我的工作区所在的同一位置创建db

我已经在我的ubuntu中安装了Neo4j debian软件包,默认数据库位于
/var/lib/Neo4j/data/graph.db
。我希望我的应用程序使用此数据库,而不是在
target/neo4j db
中创建数据库。我试图用
/var/lib/neo4j/data/graph.db
替换
target/neo4j db
,并授予了对数据库的读写权限。但它不起作用


这种配置有什么问题?我遗漏了什么吗?

要对Neo4j DB运行JUnit测试,您有3种选择

  • 使用Neo4j使用的本地文件夹。要使其工作,您必须在运行测试之前停止Neo4j服务器。如果您使用SpringJUnit4ClassRunner.class运行测试,并希望确保更改后不会恢复更改,则必须对所需的方法执行
    @Rollback(false)
    。必须这样做,因为SpringJUnit4ClassRunner.class将回滚测试期间对DB所做的所有更改
  • 使用REST方法(对于SpringJUnit4ClassRunner.class再次使用
    @Rollback(false)
    技巧)。要使其与本地方法相反,您必须在运行测试之前启动Neo4j服务器。您还必须按如下方式配置xml文件:

    
    

    • 您可以使用的最后一个选项是非永久图数据库(这只是为了提供信息,因为我怀疑这是否涵盖您的情况)。此方法将创建一个临时数据库,仅用于运行测试。测试完成后,所有内容都将被删除。如果Neo4j服务器正在运行与否,这一点就不重要了。您只需在xml文件中添加以下两行:
    
    


要对Neo4j DB运行JUnit测试,您有3种选择

  • 使用Neo4j使用的本地文件夹。要使其工作,您必须在运行测试之前停止Neo4j服务器。如果您使用SpringJUnit4ClassRunner.class运行测试,并希望确保更改后不会恢复更改,则必须对所需的方法执行
    @Rollback(false)
    。必须这样做,因为SpringJUnit4ClassRunner.class将回滚测试期间对DB所做的所有更改
  • 使用REST方法(对于SpringJUnit4ClassRunner.class再次使用
    @Rollback(false)
    技巧)。要使其与本地方法相反,您必须在运行测试之前启动Neo4j服务器。您还必须按如下方式配置xml文件:

    
    

    • 您可以使用的最后一个选项是非永久图数据库(这只是为了提供信息,因为我怀疑这是否涵盖您的情况)。此方法将创建一个临时数据库,仅用于运行测试。测试完成后,所有内容都将被删除。如果Neo4j服务器正在运行与否,这一点就不重要了。您只需在xml文件中添加以下两行:
    
    


在您的
conf/neo4j server.properties
文件中有一行:
org.neo4j.server.database.location=data/graph.db
。也许在这里编辑位置并重新启动服务器会有所帮助。
@ulkas
:这并不能解决这个问题,spring数据Neo4j不使用该文件,而是仅由安装了Neo4j的debian软件包使用。因此,当我更新此文件并重新启动服务器时,它将在第一次指定的新位置创建一个新数据库。SpringDataNeo4j只能访问
springContext.xml
中提供的配置。服务器数据库目录中有什么“不起作用”?您必须停止服务器才能让测试访问数据库。@MichaelHunger:如果我通过代码使用服务器数据库目录并停止服务器,测试将正常运行,但当我再次启动服务器时,我发现只有一个默认节点(0)。我希望由测试用例创建的所有节点都出现在db中。此外,我丢失了以前在db over server中手动创建的所有节点。在您的
conf/neo4j server.properties
文件中有一行:
org.neo4j.server.database.location=data/graph.db
。也许在这里编辑位置并重新启动服务器会有所帮助。
@ulkas
:这并不能解决这个问题,spring数据Neo4j不使用该文件,而是仅由安装了Neo4j的debian软件包使用。因此,当我更新此文件并重新启动服务器时,它将在第一次指定的新位置创建一个新数据库。SpringDataNeo4j只能访问
springContext.xml
中提供的配置。服务器数据库目录中有什么“不起作用”?您必须停止服务器才能让测试访问数据库。@MichaelHunger:如果我通过代码使用服务器数据库目录并停止服务器,测试将正常运行,但当我再次启动服务器时,我发现只有一个默认节点(0)。我希望由测试用例创建的所有节点都出现在db中。此外,我丢失了以前在db over server中手动创建的所有节点。