OpenJPA Sample Code
The OpenJPA distribution comes with a number of examples that
illustrate the usage of various features.
JDO - JPA Persistence InteroperabilityThis sample demonstrates how to combine JDO and JPA in a single
application. The MachineMain.java program uses both
EntityManagers and PersistenceManagers
in a single transaction including persist, delete and query operations.The sample includes both annotated persistent classes as well as JDOR
metadata information. The application can switch to either system simply
by changing the bootstrap mechanism. Depending on which configuration
system you use, OpenJPA will read the corresponding metadata format. You can
override some or all of this behavior using OpenJPA's configuration options,
such as openjpa.MetaDataFactory.To use this sample, you should ensure that either a jdo.properties
or persistence.xml are in the META-INF directory
in your CLASSPATH. The rest of the files for this sample are located in the
samples/mixed directory of the OpenJPA installation. This tutorial requires JDK 5.
To run this tutorial:Ensure that your environment is set properly as described in the
README and that your current path is in the mixed sample directory.
You may want to edit ConnectionURL to point to an absolute
URL (e.g. C:/openjpa/mixed-sample-db) if using a file-based database like
HSQL.Include the list of persistent classes in your configuration file. For
JPA, you will want to add the following lines to
persistence.xml before the <property> lines:
<class>samples.mixed.Machine</class>
<class>samples.mixed.Crane</class>
<class>samples.mixed.Bulldozer</class>
<class>samples.mixed.Operator</class>
If you are using JDO, point the metadata factory at the .jdo
resource containing your persistent classes:
openjpa.MetaDataFactory: Resources=samples/mixed/package.jdo
Compile the classes:
javac *.javaYou should then proceed to pass in the configuration file you are using
to the enhancer:
openjpac -p persistence.xml Machine.java Crane.java Bulldozer.java Operator.java
or
jdoc -p jdo.properties Machine.java Crane.java Bulldozer.java Operator.javaSimilarly, you should pass in the same argument to mappingtool:
mappingtool -p persistence.xml -a buildSchema Machine.java Crane.java Bulldozer.java Operator.java
or
mappingtool -p jdo.properties -a buildSchema Machine.java Crane.java Bulldozer.java Operator.javaYou can now run the sample application. The first argument is
which operation you want the program to run. The second argument tells
the application which bootstrap system to use:
java samples.mixed.MachineMain <create | delete> <jdo | jpa>JPASample Human Resources ModelThe files for this sample are located in the samples/persistence/models/humres
directory of the OpenJPA installation. This sample demonstrates the mapping of
an example "Human Resources" schema. The following concepts are illustrated
in this sample:Value MappingsOne to One MappingsOne to Many Mappings (with and without inverses)