繁体   English   中英

spring数据neo4j使用现有数据库

[英]spring data neo4j use existing database

我正在使用Spring Data Neo4j,已经在Spring中创建了一个应用程序。 我可以借助JUnit测试用例来运行我的应用程序。 但是每次我运行测试用例时,它都会在使用<neo4j:config storeDirectory="target/neo4j-db"/>指定的目录路径中创建一个新数据库。 这将在Eclipse中我的工作空间所在的位置创建db。

我已经在我的ubuntu中安装了Neo4j debian软件包,默认情况下,该软件包在/var/lib/neo4j/data/graph.db具有数据库。 我希望我的应用程序使用此数据库,而不是在target/neo4j-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将在测试期间回滚对数据库所做的所有更改。
  • 使用REST方法(对SpringJUnit4ClassRunner.class再次使用带有@Rollback(false)的技巧)。 为了使此方法与本地方法相反,您必须在运行测试之前启动Neo4j服务器。 您还必须像这样配置xml文件:

    <neo4j:config graphDatabaseService="graphDatabaseService"/> <bean id="graphDatabaseService" class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase"> <constructor-arg value="http://localhost:7474/db/data/" index="0" /> </bean>

    • 您可以使用的最后一个选项是无常图数据库 (这仅供参考,因为我怀疑这是否涵盖了您的情况)。 此方法将仅出于运行测试的目的创建一个临时数据库。 测试完成后的所有内容都将被删除。 Neo4j服务器是否正在运行,能否正常工作都无关紧要。 您只需要在xml文件中添加以下两行:

    <neo4j:config graphDatabaseService="graphDatabaseService"/> <bean id="graphDatabaseService" class="org.neo4j.test.ImpermanentGraphDatabase" destroy-method="shutdown"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM