Friday, April 18, 2008

OpenJPA

Habe heute mit OpenJPA den Persistenzlayer fuer meine Testapplikation Fita.RCP implementiert. Ich kann ueber die Datei persistence.xml entscheiden wohin die Daten gespeichert werden. Zum Beispiel habe ich ueber DerbyEmbedded eine Standalone Applikation und wenn ich mehrere Instanzen starten will, gehe ich auf PostgreSQL.

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
version="1.0">
<persistence-unit name="fitaDB-EmbeddedDriver">
<provider>
org.apache.openjpa.persistence.PersistenceProviderImpl
</provider>
<class>net.cioppino.fita.core.model.ModelObject</class>
<class>net.cioppino.fita.core.model.User</class>
<class>net.cioppino.fita.core.model.Arrow</class>
<class>net.cioppino.fita.core.model.Score</class>
<class>net.cioppino.fita.core.model.ScoreCard</class>
<class>net.cioppino.fita.core.model.Training</class>
<class>net.cioppino.fita.core.model.TrainingBook</class>
<properties>
<property name="openjpa.ConnectionDriverName"
value="org.apache.derby.jdbc.EmbeddedDriver" />
<property name="openjpa.ConnectionURL"
value="jdbc:derby:c:\DerbyDatabases\fitaDB;create=true" />
<property name="openjpa.ConnectionUserName" value="" />
<property name="openjpa.ConnectionPassword" value="" />
<property name="openjpa.Sequence"
value="table(Table=OPENJPASEQ, Increment=100)" />
<property name="openjpa.Log" value="SQL=TRACE" />
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema" />
<property name="openjpa.jdbc.EagerFetchMode"
value="parallel" />
<property name="openjpa.jdbc.SubclassFetchMode"
value="join" />

</properties>
</persistence-unit>

<persistence-unit name="fitaDB-PostgreSQL">
<provider>
org.apache.openjpa.persistence.PersistenceProviderImpl
</provider>
<class>net.cioppino.fita.core.model.ModelObject</class>
<class>net.cioppino.fita.core.model.User</class>
<class>net.cioppino.fita.core.model.Arrow</class>
<class>net.cioppino.fita.core.model.Score</class>
<class>net.cioppino.fita.core.model.ScoreCard</class>
<class>net.cioppino.fita.core.model.Training</class>
<class>net.cioppino.fita.core.model.TrainingBook</class>
<properties>
<property name="openjpa.ConnectionDriverName"
value="org.postgresql.Driver" />
<property name="openjpa.ConnectionURL"
value="jdbc:postgresql://localhost:5432/fitaDB" />
<property name="openjpa.ConnectionUserName"
value="postgres" />
<property name="openjpa.ConnectionPassword"
value="XXXXXXX" />

<property name="openjpa.Sequence"
value="table(Table=OPENJPASEQ, Increment=100)" />
<property name="openjpa.Log" value="SQL=TRACE" />
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema" />
<property name="openjpa.jdbc.EagerFetchMode"
value="parallel" />
<property name="openjpa.jdbc.SubclassFetchMode"
value="join" />
<property name="openjpa.Log" value="SQL=TRACE" />
</properties>
</persistence-unit>
</persistence>



So einfach war Persistenze noch nie. Die Einarbeitung kostet etwas Zeit aber wenn es laeuft, dann ist man sehr schnell bei der Speicherung und Aenderung von Daten.

0 Kommentare: