- Beziehe unter http://mvnrepository.com/artifact/org.apache.openjpa/openjpa-all das openjpa-all-2.2.0.jar (etwas mehr als 6 MiB) und setzte es in den Klassenpfad.
- Habe einen Datentreiber im Klassenpfad (bei mir den der HSQLDB).
- Lege im Projekt einen Ordner META-INF an, platziere dort eine Datei persistence.xml:
- Lege eine Klasse traida.shared.domain.Contact an:
- Schreibe eine main(String[])-Methode mit:
- Fertig, jetzt freuen.
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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 persistence_2_0.xsd"
version="2.0">
<persistence-unit name="traida" transaction-type="RESOURCE_LOCAL">
<class>traida.shared.domain.Contact</class>
<properties>
<property name="openjpa.jdbc.DBDictionary" value="hsql"/>
<property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:file:hsqldbtest;user=sa" />
<property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" />
<property name="openjpa.Log" value="DefaultLevel=ERROR, Tool=ERROR" />
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
</properties>
</persistence-unit>
</persistence>
Mehr zu den Properties unter http://openjpa.apache.org/builds/apache-openjpa-2.2.1-SNAPSHOT/docs/docbook/manual/main.html.
@Entity
public class Contact {
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
public Long id;
public String name;
// Setter/Getter ausgelassen
}
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory( "traida" );
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
Contact c = new Contact();
c.name = "Hallo Willi";
entityManager.persist( c );
entityManager.getTransaction().commit();
System.out.println( entityManager.createQuery( "select c from Contact c" ).getResultList() );
entityManager.close();