如何定义两个持久性单元(一个用于生产,一个用于单元测试)?

yeg*_*256 8 java jpa

这是我的无状态bean:

@Stateless
public class Finder {
  @PersistenceContext(unitName = "production")
  EntityManager em;
  [...]
}
Run Code Online (Sandbox Code Playgroud)

它明确定义了持久性单元的名称production.这个单位配置persistence.xml,一切都很好.当我对这个类进行单元测试时,我必须使用另一个持久性单元,具有不同的属性和配置设置.我该如何组织它?创建另一个<persistence-unit>元素persistence.xml?这有什么最佳实践吗?

Pas*_*ent 8

我使用相同的持久单元名称但不同的persistence.xml文件(如果需要编辑代码以启用"测试模式",您将如何自动化测试?).

如果您仍在使用Maven,Maven支持本机配置文件的测试版本:

  • "生产" persistence.xml在下面src/main/resources/META-INF
  • "测试" persistence.xml进入src/test/resources/META-INF并用于测试.