0

I am trying to use javax-persistent-api-2.2 and seeing the below error: WARNING: javax.persistence.spi::No valid providers found. Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named bookPU

persistent.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="bookPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>jpa.crud.Book</class>
          
   <properties>
      <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
      <property name="javax.persistence.schema-generation.scripts.action" value="drop-and-create"/>
      <property name="javax.persistence.schema-generation.scripts.create-target" value="book-create.ddl"/>
      <property name="javax.persistence.schema-generation.scripts.drop-target" value="book-drop.ddl"/>
      <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
      <!--<property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:module01-db"/>-->
      <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databaseName=xxx"/>
      <property name="javax.persistence.jdbc.user" value="xxx"/>
       <property name="javax.persistence.jdbc.password" value="xxx"/>
      <property name="eclipselink.logging.level" value="INFO"/>
    </properties>
  </persistence-unit>
</persistence>

pom.xml

 <dependency>
          <groupId>com.microsoft.sqlserver</groupId>
          <artifactId>sqljdbc4</artifactId>
          <version>4.0</version>
      </dependency>
      
      <dependency>
        <groupId>javax.persistence</groupId>
        <artifactId>javax.persistence-api</artifactId>
        <version>2.2</version>
      </dependency>

persistent.xml is present under src\main\resource\META-INF Any help. Thanks

Lokanath Nayak
  • 89
  • 2
  • 10
  • 1
    Does this answer your question? [No Persistence provider for EntityManager named](https://stackoverflow.com/questions/1158159/no-persistence-provider-for-entitymanager-named) – Prathap Reddy Aug 08 '20 at 07:10
  • 1
    Error states that the provided `persistence provider` is not valid. Are you sure on the given `persistence provider`? – Prathap Reddy Aug 08 '20 at 07:15
  • You need to add Hibernate or another JPA implementation. – Mark Rotteveel Aug 08 '20 at 07:59
  • I was not trying to use Hibernate as its for a teaching purpose of JPA. I found the solution after spending a couple of hr. I added the eclipselink jar which resolved the issue – Lokanath Nayak Aug 09 '20 at 06:13

0 Answers0