【问题标题】:No persistence provider exception没有持久性提供程序异常
【发布时间】:2017-02-15 09:46:27
【问题描述】:

我使用的是netbeans,我选择了eclipseLink JPA2.1。

    String persistenceUnitName="mypersistence";
    EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnitName);
    FacturesJpaController fjc = new FacturesJpaController(emf);

我的持久化 xml 文件在 META-INF 中:

  <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
      <persistence-unit name="mypersistence" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>database.mapping.Approvisionement</class>
        <class>database.mapping.Categories</class>
        <class>database.mapping.Factures</class>
        <class>database.mapping.Fournisseur</class>
        <class>database.mapping.Marques</class>
        <class>database.mapping.ProduitCategorie</class>
        <class>database.mapping.ProduitMarque</class>
        <class>database.mapping.Produits</class>
        <class>database.mapping.Profiles</class>
        <class>database.mapping.Users</class>
        <class>database.mapping.Usersstate</class>
        <class>database.mapping.Vente</class>
        <properties>
          <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/piecedetachee?zeroDateTimeBehavior=convertToNull"/>
          <property name="javax.persistence.jdbc.user" value="root"/>
          <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
          <property name="javax.persistence.jdbc.password" value=""/>
          <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
        </properties>
      </persistence-unit>
    </persistence>

我的 pom 文件:

<dependencies>
        <dependency>
            <groupId>org.swinglabs</groupId>
            <artifactId>swing-layout</artifactId>
            <version>1.0.3</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.5.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.apis</groupId>
            <artifactId>google-api-services-gmail</artifactId>
            <version>v1-rev55-1.22.0</version>
        </dependency>
         <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>2.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.luuuis</groupId>
            <artifactId>jcalendar-tz</artifactId>
            <version>1.3.3-4</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
            <version>2.5.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>javax.persistence</artifactId>
            <version>2.1.0</version>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>${basedir}/src/main/java/com/talcorp/piecedetachee/dalipiecesdetaches/icons</directory>
                <targetPath>${maven.compiler.target}/../com/talcorp/piecedetachee/dalipiecesdetaches/icons</targetPath>
            </resource>
        </resources>
    </build>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

每次我运行我的应用程序时都会遇到异常:没有名为“mypersistence”的 EntityManager 的持久性提供程序。我应该怎么做才能解决这个问题?

谢谢。

【问题讨论】:

    标签: java entity-framework hibernate maven jpa


    【解决方案1】:

    添加

    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa</artifactId>
        <version>2.5.2</version>
    </dependency>
    

    在你的 POM.xml 中

    【讨论】:

    • 我试过了,但它不起作用,我的构建标签有害吗?因为它在另一个项目中运行良好!我使用这个构建标签来复制类加载器搜索路径中的图标,因为 maven 不会复制我的资源!还有其他想法吗?
    • 尝试手动添加 jar 文件。上面的 jar(maven/手动添加)不存在于您的项目中,这会造成损害
    【解决方案2】:

    在处理这个问题数小时后,我决定创建一个新的 maven 项目,并在不更改代码的情况下移动了所有类(重构),然后我构建了它,它工作正常,不知道在以前的项目文件夹中发生了什么但我想这是一个专家问题:也许。

    【讨论】:

      猜你喜欢
      • 2018-04-03
      • 2022-07-05
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 2011-03-14
      相关资源
      最近更新 更多