【发布时间】:2010-08-12 16:35:20
【问题描述】:
我正在使用 OpenJPA 2.0.0、Jersey 1.3 和 JUnit 4.8.1 构建应用程序。
我已经设置好了,所以我在我的 persistence.xml 中定义了两个不同的持久性单元:“default”和“unittest”。默认设置为连接到 Oracle 实例,而 unittest 设置为连接到本地 H2DB 嵌入式数据库文件。我这样做是为了始终从一个干净的数据库开始我的单元测试,其中包含某些已知数据,这些数据可以在每次单元测试运行之间被覆盖。
问题是现在我想使用 Jersey 测试框架来测试我的实际 web 服务,而不仅仅是程序的较低层。我的根资源类不加载 unittest 持久性单元,它们总是加载默认值。
所以我可能需要做的是注入根资源类哪个持久化单元应该用于实例化EntityManager,然后在我运行我的测试,但否则注入默认值。但我想不出任何好的方法来做到这一点。
我是 Java EE 开发的新手,这可能很明显。
有什么帮助吗?
【问题讨论】:
-
EntityManager 或者 EntityManagerFactory 是从哪里来的?您是通过调用 Persistence.createEntityManagerFactory() 创建它,还是由某个框架注入它?您没有在问题中提及任何类型的框架。
标签: java dependency-injection junit jersey openjpa