我正在使用带JPA的MySql数据库。我的persistence.xml看起来像
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="citheph">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>persistence.citheph.pTerm</class>
<class>persistence.citheph.pPublicationterm</class>
<class>persistence.citheph.pPublicationauthor</class>
<class>persistence.citheph.pPublication</class>
<class>persistence.citheph.pCoauthorship</class>
<class>persistence.citheph.pCitation</class>
<class>persistence.citheph.pAuthor</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/cithepth" />
<property name="javax.persistence.jdbc.password" value="amer1" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="root" />
</properties>
</persistence-unit>
</persistence>
在我的java代码中,我执行以下操作
EntityManagerFactory emf = Persistence.createEntityManagerFactory("citheph");
EntityManager em = emf.createEntityManager();
emf总是回来null。数据库已连接并成功ping。我甚至试图将持久性单元名称更改为与persistance.xml中的条目不匹配的内容,并且我仍然为null。它没有抛出任何例外。当它到达代码中的第二行时
EntityManager em = emf.createEntityManager();
我得到一个空指针异常。
任何帮助将不胜感激。
答案 0 :(得分:0)
您确定persistence.xml文件位于META-INF文件夹中吗?
答案 1 :(得分:0)
启用最佳登录并确保加载持久性单元时没有发生错误。
您使用的是哪种环境,您的类路径上是否包含所有必需的罐子?