有一个单独的persistence.xml文件用于测试

时间:2016-09-13 14:29:53

标签: java jpa eclipselink maven-3

受此问题的启发:JPA using alternative "persistence.xml"我创建了一个文件夹结构,如下所示:

  • src/main/resources/META-INF/persistence.xml
  • src/test/resources/META-INF/persistence.xml

两个persistence-units都具有相同的名称,因为我的目标是测试应该选择test-folder中的一个,否则选择" normal"应该使用一个。 上述问题的答案声称" Maven将测试类/资源放在类路径中的主要类/资源之前。 然而,这不是我所看到的。如果persistence-units具有相同的名称,则始终使用src/main/resources/ ...

中的名称

任何有关如何解决此问题的建议都将不胜感激

1 个答案:

答案 0 :(得分:0)

所以似乎对原始引用问题的回复是错误的?所以我最终得到了另一个策略,如下图所示: 我有一个静态类,它总是用来获取要使用的持久性单元的名称。

public class PU_Name
{
  private static String puName = "pu_delopment";

  public static String getPU_Name(){
    return puName;
  }
  public static void setPU_Name(String name){
    puName = name;
  }
}

每当我创建一个EntityManager时,我都会按照下面的描述进行操作。在此示例中,它将名称更改为使用“test persistence-unit”

@BeforeClass
public static void initClass(){
  PU_Name.setPU_Name("puTest");
  emf = Persistence.createEntityManagerFactory(PU.getPU_Name());
}

真正的类有点“高级”,因为它还检测到OPENSHIFT环境变量的存在,并转移到使用“生产”数据库的持久性单元。

相关问题