Hallo Leute,
Ich habe eine winzige(?) Frage, ich versuche für ein paar Tests die Properties die in der persistance.xml Datei gesetzt sind programatisch nachzubilden. (Es ist mir bewusst das es nicht wirklich eine Hibernatefrage ist, jetzt wo ich's nochmal durchlese)
Allerdings weiss ich nicht wie/wo ich den provider Tag unterbringe
<provider>org.hibernate.ejb.HibernatePersistence</provider>
Code:
Properties p = new Properties();
try {
p.put("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver");
p.put("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
p.put("hibernate.hbm2ddl.auto", "create-drop");
p.put("hibernate.show_sql", "true");
p.put("hibernate.connection.username", "sa");
p.put("hibernate.connection.password", "");
p.put("javax.persistence.provider", "org.hibernate.ejb.HibernatePersistence");
Class.forName("org.hsqldb.jdbcDriver");
connection = DriverManager.getConnection("jdbc:hsqldb:mem:unit-testing-jpa", p);
} catch (Exception ex) {
ex.printStackTrace();
fail("Exception during HSQL database startup.");
}
try {
// <persistence-unit name="testPU" transaction-type="RESOURCE_LOCAL">
Properties p2 = new Properties();
p2.put("name", "testPU");
p2.put("transaction-type", "RESOURCE_LOCAL");
emFactory = Persistence.createEntityManagerFactory("testPU", p2);
em = emFactory.createEntityManager();
} catch (Exception ex) {
ex.printStackTrace();
fail("Exception during JPA EntityManager instanciation.");
}
Wenn mich da jemand in die richtige Richtung weisen könnte wär das super. Z.Z. bekomm ich nämlich nur
javax.persistence.PersistenceException: No Persistence provider for EntityManager named
beim createEntityManagerFactory() Aufruf. Das ganze funktioniert wunderbar wenn die persistance.xml vorhanden ist
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Persistence Descriptor zur Konfiguration des Frameworks -->
<persistence>
<!-- Symbolischer Name der Persistenz-Unit und der zu verwendende
Transaktionstyp; Standard ist 'JTA' -->
<persistence-unit name="testPU" transaction-type="RESOURCE_LOCAL">
<!-- Zu verwendende Service Provider Implementierung -->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.connection.url" value="jdbc:hsqldb:mem:unit-testing-jpa"/>
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
<property name="hibernate.connection.username" value="sa"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
Hoffe mir kann jemand helfen, danke schonmal