测试时错误的persistence.xml

时间:2017-06-24 15:18:53

标签: java hibernate jpa

我目前正在开发一个使用Hibernate作为ORM-Tool的Java SE应用程序。我想使用不同的数据库进行测试,因此我创建了第二个persistence.xml文件。问题是,当我执行测试时,加载并使用了错误的persistence.xml。

我的文件结构如下:

src
|- main
   |- resources
      |- META-INF
         |- persistence.xml  // This one is used
|- test
   |- resources
      |- META-INF
         |- persistence.xml  // This one should be used

persistence.xml文件看起来一样,只有模式不同。

住:

<property name="javax.persistence.jdbc.url" value="jdbc:h2:./data/mydb" />

测试:

<property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:mydb" />

我编写了一个测试,检查是否使用了正确的持久性单元,代码如下所示:

Session session = (Session)entityManager.getDelegate();
SessionFactory sessionFactory = session.getSessionFactory();
Map<String, Object> properties = sessionFactory.getProperties();
String url = (String) properties.get("hibernate.connection.url");

assertThat(url, containsString(":mem:"));  // Wrong url

0 个答案:

没有答案