有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaApacheDerby+jpa

我有嵌入式derby数据库,我与jpa合作。这是我的坚持。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="pers">

        <class>entities.Leverancier</class>
        <class>entities.Prijsproduct</class>
        <class>entities.Product</class>


    </persistence-unit>
</persistence>

我应该更改或添加什么以使其工作。当我现在运行代码时,我得到以下信息:

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named pers
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
at test.Test.main(Test.java:19)

共 (1) 个答案

  1. # 1 楼答案

    您的persistence.xml不正确。请看下面的示例:

    <persistence-unit name="MyAppPU" transaction-type="RESOURCE_LOCAL">    
        <!  This is where you mention your JPA runtime provider e.g. it's EclipseLink here  >
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>    
    
        <class>mypkg.MyEntity</class>
    
        <properties>
          <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/my_schema"/>
          <property name="javax.persistence.jdbc.password" value="pass"/>
          <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
          <property name="javax.persistence.jdbc.user" value="user"/>
        </properties>
    
    </persistence-unit>
    

    您还必须确保将JPA提供者jar文件(以及derby客户端jar)放在类路径中