【问题标题】:Getting Exception in thread "main" java.lang.ExceptionInInitializerError Exception在线程“main”中获取异常 java.lang.ExceptionInInitializerError 异常
【发布时间】:2015-10-19 09:23:13
【问题描述】:

我在运行以下代码时收到Exception in thread "main" java.lang.ExceptionInInitializerError,

public class JPAUtil {

    private static final EntityManagerFactory emFactory;

    static {
        try {
            emFactory = Persistence.createEntityManagerFactory("org.hibernate.events");
        }catch(Throwable ex){
            System.err.println("Cannot create EntityManagerFactory.");
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static EntityManager createEntityManager() {
        return emFactory.createEntityManager();
    }

    public static void close(){
        emFactory.close();
    }
}

堆栈跟踪:

Cannot create EntityManagerFactory.
Exception in thread "main" java.lang.ExceptionInInitializerError
    at util.JPAUtil.<clinit>(JPAUtil.java:16)
    at event.EventManager.createAndStoreEvent(EventManager.java:30)
    at event.EventManager.main(EventManager.java:18)
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named org.hibernate.events
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
    at util.JPAUtil.<clinit>(JPAUtil.java:13)
    ... 2 more

请帮助我并告诉我哪里错了?

【问题讨论】:

    标签: java jpa


    【解决方案1】:
    emFactory = Persistence.createEntityManagerFactory("org.hibernate.events");
    

    正确的语法:

    emFactory = Persistence.createEntityManagerFactory("org.hibernate.events.jpa");
    

    【讨论】:

    • 所以您更改了持久性单元名称,尽管 OP 没有说明它们的 persistence.xml 中存在哪些持久性单元?
    猜你喜欢
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 2020-01-22
    相关资源
    最近更新 更多