java是不同的持久性。测试运行/JPA装置的xml属性
我开发了一些JavaEE/SpringWeb应用程序。我使用JPA2.0-Hibernate。对于集成测试,我需要使用不同的数据库。这些测试需要Jetty来运行应用程序,但我成功地覆盖了web。对于这样的运行,我可以在那里修改我的Spring上下文文件,没关系。 但每次我都需要一个干净的数据库(并向其中加载一些数据)。 由于我的数据库名称和地址是在sprig上下文中配置的,所以我只是如上所述切换了它们——但是我如何更改一些持久性呢。此测试的xml属性是否仅用于删除和重新创建数据库? 我试图再坚持一次。xml位于/src/test/resources/META-INF中(并检查测试类是否位于类路径的第一位),但它没有加载,只使用了“主”版本(来自/src/main/resources/META-INF)。有什么帮助吗
# 1 楼答案
使用spring,您通常将数据源定义为Springbean。数据库url和凭据通常包含在外部文件中,例如应用程序。财产
如果你换一个新的应用。在
src/test/resources
中的属性将起作用See also here# 2 楼答案
你可以定义组织。springframework。奥姆。jpa。坚持小组。DefaultPersistenceUnitManager:
然后,将其链接到您的EntityManager工厂:
我用它来实现我自己的坚持。xml链接到内存数据库中的HSQL,并预装了DBUnit(使用hibernate.hbm2ddl.auto=create drop)
它工作得很好