0

我是 OpenJPA 的新手。当我尝试使用 OpenJPA 和 Oracle 编写示例程序时,我在创建 EntityManager 时收到 NullPointerException。

示例程序是

    public static void main(String[] args) {
        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("testjpa");
        EntityManager em = entityManagerFactory.createEntityManager();
        EntityTransaction userTransaction = em.getTransaction();

        userTransaction.begin();
        Customer customer = new Customer();
        customer.setFirstName("Charles");
        customer.setLastName("Dickens");
        customer.setCustType("RETAIL");
        customer.setStreet("10 Downing Street");
        customer.setAppt("1");
        customer.setCity("NewYork");
        customer.setZipCode("12345");
        em.persist(customer);
        userTransaction.commit();
        em.close();
        entityManagerFactory.close();
}

persistence.xml 是

<persistence-unit name="testjpa">
    <provider>
        org.apache.openjpa.persistence.PersistenceProviderImpl
    </provider>
    <class>sample.jpa.entity.Customer</class>
    <properties>
        <property name="openjpa.jdbc.DBDictionary" value="oracle(DriverVendor=oracle)" />
        <property name="openjpa.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:xe" />
        <property name="openjpa.ConnectionDriverName" value="oracle.jdbc.driver.OracleDriver" />
        <property name="openjpa.ConnectionUserName" value="xxxxx" />
        <property name="openjpa.ConnectionPassword" value="xxxxx" />
        <property name="openjpa.Log" value="SQL=TRACE" />
    </properties>
</persistence-unit>

堆栈跟踪是

Exception in thread "main" java.lang.NullPointerException
at sample.jpa.main.TestJPA.main(TestJPA.java:16)

这发生在

EntityManager em = entityManagerFactory.createEntityManager();

谁能帮我解决这个问题?

4

1 回答 1

0

就像 Eelke 已经告诉你的那样:你必须发布确切的堆栈跟踪。没有堆栈就没有机会开始调试它。

我还希望您的代码片段中“持久性”后面的空格只是一个错字:

EntityManagerFactory entityManagerFactory = Persistence .createEntityManagerFactory("testjpa");

塞巴斯蒂安

于 2012-09-30T15:16:19.847 回答