JPA使用@PersistenceContext

时间:2013-09-17 20:42:25

标签: jpa

如何动态获取持久性单元名称?

例如,在下面的示例中,我很难将unitName编码为application_openjpa,但我想以unitName=#{unitName}动态地给它,所以如果我有不同的项目使用实体jar,但是可以使用自己的persistence.xml文件

@PersistenceContext(unitName="application_openjpa")
    public void setEntityManager(EntityManager entityManager) {
        this.entityManager = entityManager;
    }

1 个答案:

答案 0 :(得分:0)

由于应用程序通常具有有限数量的持久性单元,如何创建两个setter方法并使用不同的unitName属性对其进行注释,例如:

@PersistenceContext(unitName="testEM")
public void setTestEntityManager(EntityManager testEM) {
  this.testEM = testEM;
}

@PersistenceContext(unitName="prodEM")
public void setProdEntityManager(EntityManager prodEM) {
  this.prodEM = prodEM;
}

然后您可以动态选择testEMprodEM