我知道的指示:
Persistence.createEntityManagerFactory("persistence-unit-name");
JPA持久性机制读取“ persistence.xml”文件,查找名为“ persistence-unit- name”的持久性单元,并基于该持久性单元构造EntityManagerFactory。
我的问题是,如何强制JPA 使用不同于“ persistence.xml”的文件 ?例如“ persistence-test.xml”。
尽管单个JPA提供程序可以提供一种方法,但是没有标准化的JPA方法可以做到这一点。我建议为main和test使用不同的类路径的标准方法。
例如,如果您使用Maven,并且有两个META- INF/persistence.xml文件,一进src/main/resources一出src/test/resources,则测试将选择一进一出src/test/resources,因为Maven在类路径中将测试类/资源放在主要类/资源之前。您可以轻松配置Ant以类似的方式工作。
META- INF/persistence.xml
src/main/resources
src/test/resources
如果您需要更高级的逻辑,请考虑使用Spring的JPA支持。它可以让您处理高级情况,例如集成多个persistence.xml文件。