在创建EntityManager时使用Oracle-NullPointerException打开JPA
我是OpenJPA的新手。当我试图用OpenJPA和Oracle编写一个示例程序时,在创建EntityManager时遇到了一个NullPointerException 示例程序是在创建EntityManager时使用Oracle-NullPointerException打开JPA,jpa,Jpa,我是OpenJPA的新手。当我试图用OpenJPA和Oracle编写一个示例程序时,在创建EntityManager时遇到了一个NullPointerException 示例程序是 public static void main(String[] args) { EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("testjpa"); Ent
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>
这是发生在
EntityManager em = entityManagerFactory.createEntityManager();
有人能帮我解决这个问题吗?就像Eelke已经告诉过你的那样:你必须发布准确的堆栈跟踪。如果没有堆栈,就没有机会开始调试 我还希望您的代码片段中“持久性”后面的空白只是一个输入错误:
EntityManagerFactory entityManagerFactory = Persistence .createEntityManagerFactory("testjpa");
Sebastian如果您在tomcat或glassfish等应用服务器中运行此操作,日志中可能会有一些有用的信息。比如它无法连接或者找不到jdbc驱动程序。更新了详细信息。我没有使用任何应用服务器。尝试使用控制台应用程序。应用程序服务器无关;无论从何处运行JPA实现,都会从中获得日志。您试图创建一个EMF,但在该行它是空的,所以使用日志告诉您为什么要通过Spring设置OpenJPA,或者您使用什么样的环境来初始化/加载工厂。。。通常persistence.xml的周围是:,您的文件似乎不完整。。。此外,堆栈跟踪还包含一行以上的代码。堆栈跟踪是一个完整的例外,整个上下文不只是一行。在点之前的空白不会造成任何伤害-除了你的审美印象。
EntityManagerFactory entityManagerFactory = Persistence .createEntityManagerFactory("testjpa");