java ee - No Persistence provider for EntityManager named EmpDb -
i'm getting error:
exception in thread "main" javax.persistence.persistenceexception: no persistence provider entitymanager named employeedb @ javax.persistence.persistence.createentitymanagerfactory(persistence.java:85) @ javax.persistence.persistence.createentitymanagerfactory(persistence.java:54) @ staffmanagement.test.testharness.main(testharness.java:14)
but can't understand why - did identical thing on home pc , had no issues. here code test file:
public class testharness { public static void main(string[] args) { entitymanagerfactory emf = persistence.createentitymanagerfactory("empdb"); entitymanager em = emf.createentitymanager(); entitytransaction tx = em.gettransaction(); tx.begin(); employee employee1 = new employee("brad", "pitt", "actor", 10000); em.persist(employee1); tx.commit(); em.close(); }
}
and persistence.xml file:
<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" version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="empdb" transaction-type="resource_local"> <class>staffmanagement.domain.employee</class> <properties> <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.clientdriver" /> <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/dbname" /> <property name="javax.persistence.jdbc.user" value="app" /> <property name="javax.persistence.jdbc.password" value="app" /> <property name="eclipselink.logging.level" value="fine" /> <property name="eclipselink.ddl-generation" value="create-tables" /> <property name="eclipselink.ddl-generation.output-mode" value="database" /> </properties>
please me! i'm ripping hair out. i'm using eclipse , derby db. have persistence.xml file in meta-inf folder.
you need wrap in persistence.xml persistence-unit
tag.
<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" version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="empdb"> <provider>org.eclipse.persistence.jpa.persistenceprovider</provider> <class>staffmanagement.domain.employee</class> <properties> <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.clientdriver" /> <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/dbname" /> <property name="eclipselink.target-database" value="derby"/> <property name="javax.persistence.jdbc.user" value="app" /> <property name="javax.persistence.jdbc.password" value="app" /> <property name="eclipselink.logging.level" value="fine" /> <property name="eclipselink.ddl-generation" value="create-tables" /> <property name="eclipselink.ddl-generation.output-mode" value="database" /> </properties> </persistence-unit>
also, specify persistence provider , target db:
<provider>org.eclipse.persistence.jpa.persistenceprovider</provider> <property name="eclipselink.target-database" value="derby"/>
Comments
Post a Comment