Android:EclipseLink:没有名为PU的EntityManager的持久性提供程序

时间:2013-04-22 09:19:48

标签: android jpa eclipselink persistence.xml

我有一个jpa程序,我想在Android上改变。这是我的android项目中的src-file-structure:

+---org
|   \---manager
|       +---android
|       |       EnterIndexNumberActivity.java
|       |       MainActivity.java
|       |       WrongCredentials.java
|       |       
|       +---controller
|       |       DBStuff.java
|       |       ManagerMain.java
|       |       ServerHandling.java
|       |       
|       +---model
|       |       Person.java
|       |       
|       \---view
\---META-INF
        persistence.xml

这是我的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="PU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>itan.manager.model.Itan</class>
    <properties>          
      <property name="javax.persistence.jdbc.url" value="jdbc:h2:data/.h2/db/manager;CIPHER=AES;IFEXISTS=TRUE;"/>      
      <property name="javax.persistence.jdbc.user" value=""/>
      <property name="javax.persistence.jdbc.password" value=""/>
      <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
    </properties>
  </persistence-unit>
</persistence>

如果我想连接到数据库,则抛出ecxeption,找不到名为“PU”的EntityManager的持久性提供程序。我该怎么办?我认为在设备上找不到persistence.xml。但是如何知道xml文件呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

您的应用程序中是否包含JPA jar? (persistence.jar,eclipselink.jar)

我不知道JPA在Android上运行。

您可能需要直接访问持久性提供程序,并且可能需要传递类加载器。

org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory()

请参阅, http://www.eclipse.org/eclipselink/api/2.4/org/eclipse/persistence/config/PersistenceUnitProperties.html#CLASSLOADER