我在创建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)
伙计们,请让我知道如何解决这个问题..
先谢谢
答案 0 :(得分:0)
在配置文件(如persistence.xml)中进行更改时,清理和重建项目可能会有所帮助。进入菜单,选择Project - Clean .... 如果Eclipse未设置为自动构建项目,则选择Project - Build Project。