Hallo
In einem Projekt, in dem die JPA mit Hibernate eingesetzt wird, möchte ich den Namen der Db aus einer Property-Datei einlesen (auch weitere Parameter wir url, username, password usw.). Die Properties werden eingelesen und in eine Mappe geschrieben, die beim erzeugen der EntityManagerFactory als Parameter übergeben wird. Das will aber irgendwie nicht!
Da ich die meisten Properties einlese, halte ich die persistence.xml sehr kurz:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="my_db" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
</persistence-unit>
</persistence>
[/XML]
Frage 1:
Gehe ich richtig in der Annahme, dass man auf die persistence.xml nicht verzichten kann? Und auch dann nicht, wenn sie so kurz gehalten wird? Mir ist es halt nicht gelungen ...
Frage 2:
Mein Ansatz funktioniert nur dann, wenn der Name der Datenbank mit dem Namen der "persistence-unit" übereinstimmt. Heisst, in meinem Beispiel hier, muss meine Db unbedingt my_db heissen. Versuche ich in der property-Datei die Db test_db zu taufen, bekomme ich folgende Fehlermeldung:
[XML]javax.persistence.PersistenceException: No Persistence provider for EntityManager named test_db[/XML]
Also, geht das überhaupt? Könnte man den Db-Namen dynamisch aus einer property-Datei einlesen?
Und, noch ein Hinweis: es handelt sich um JPA und Hibernate mit JSE (kein AS).
Danke.
In einem Projekt, in dem die JPA mit Hibernate eingesetzt wird, möchte ich den Namen der Db aus einer Property-Datei einlesen (auch weitere Parameter wir url, username, password usw.). Die Properties werden eingelesen und in eine Mappe geschrieben, die beim erzeugen der EntityManagerFactory als Parameter übergeben wird. Das will aber irgendwie nicht!
Da ich die meisten Properties einlese, halte ich die persistence.xml sehr kurz:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="my_db" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
</persistence-unit>
</persistence>
[/XML]
Frage 1:
Gehe ich richtig in der Annahme, dass man auf die persistence.xml nicht verzichten kann? Und auch dann nicht, wenn sie so kurz gehalten wird? Mir ist es halt nicht gelungen ...
Frage 2:
Mein Ansatz funktioniert nur dann, wenn der Name der Datenbank mit dem Namen der "persistence-unit" übereinstimmt. Heisst, in meinem Beispiel hier, muss meine Db unbedingt my_db heissen. Versuche ich in der property-Datei die Db test_db zu taufen, bekomme ich folgende Fehlermeldung:
[XML]javax.persistence.PersistenceException: No Persistence provider for EntityManager named test_db[/XML]
Also, geht das überhaupt? Könnte man den Db-Namen dynamisch aus einer property-Datei einlesen?
Und, noch ein Hinweis: es handelt sich um JPA und Hibernate mit JSE (kein AS).
Danke.