在JPA中重命名persistence.xml时出现问题,使用EclipseLink

时间:2016-11-22 06:58:51

标签: java hibernate jpa java-ee orm

我在创建createEntityManagerFactory时面临以下异常,虽然我在META-INF文件夹中有persistence.xml,持久性单元ABC存在于persistence.xml中,持久性提供程序是hibernate,如下所示。

<persistence-unit name="ABC" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider>

的异常

javax.persistence.PersistenceException: No Persistence provider for EntityManager named ABC

在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)

所以我认为createEntityManagerFactory没有引用正确的persistence.xml文件,我更改了persistence-alternative.xml和 我使用以下代码来引用persistence-alternative.xml

EntityManagerFactory emf = objEmfMap.get(unitName);
    try{
        Properties pros = new Properties();

        pros.setProperty(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML, 
                         "META-INF/persistence-alternative.xml");
        // check if the entity manager factory is available for the unit else create            
        if (emf == null) {
            emf = Persistence.createEntityManagerFactory(unitName,pros);
            objEmfMap.put(unitName, emf);
        }

我将persistence-alternative.xml放在META-INF文件夹中。 但我仍然面临同样的例外。

javax.persistence.PersistenceException:没有名为ABC的EntityManager的持久性提供程序     在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)

伙计们,请让我知道如何解决这个问题..

先谢谢

1 个答案:

答案 0 :(得分:0)

在配置文件(如persistence.xml)中进行更改时,清理和重建项目可能会有所帮助。进入菜单,选择Project - Clean .... 如果Eclipse未设置为自动构建项目,则选择Project - Build Project。