我有一个 java-ee Web 应用程序,它使用打包为 jar 依赖项(实体类、EJB 存储库、persistence.xml)的持久性单元。
为了让 Web 应用程序运行一些验收测试,我需要覆盖打包的 persistence.xml 中的一个属性。具体来说,我需要通过设置以下属性来禁用默认的活动 eclipselink共享对象缓存。
<property name="eclipselink.cache.shared.default" value="false"/>
Run Code Online (Sandbox Code Playgroud)
这是必要的,因为验收测试是直接使用 dbunit 准备/清理数据库。这些修改将使 eclipselink 缓存处于陈旧状态(因为持久性单元不参与这些修改)。
java-ee(或特定于glassfish)是否有办法覆盖位于jar中的persistence.xml中的属性(从运行我的测试时部署的Web应用程序war文件开始)?
可能还有其他方法,例如构建特定于测试部署的 jar 依赖项,但这条路线对我来说似乎很复杂,因为只覆盖了我的 persistence.xml 中的一个属性。