On Feb 11, 2009, at 10:55 PM, bongosdude wrote:


I posted this problem on openjpa forum: Please see this thread at:

http://n2.nabble.com/Problem-with-multi-persistence-units-td2303818.html#a2304438


One of OpenJPA developer replied to my post and pointed out some problem
that may be caused by how geronimo configures openjpa. I copied his reply
here and hope someone from geronimo developers can comment

Hi,
It looks like Geronimo might be passing in some extra properties to
OpenJPA???  In the trace, there are two openjpa properties that are
suspect.  You don't have them in your persistence.xml.  And, if you are not
passing them in as system properties, then my next guess is Geronimo.  The
two properties that seem to be causing your situation are these:

openjpa.MetaDataFactory:
jpa(Files=/usr/local/geronimo-
tomcat6-javaee5-2.1.3/repository/default/callingcard-ear/1.0/callingcard-ear-1.0.car/callingcard-ejb.jar)

openjpa.jdbc.SynchronizeMappings: buildSchema(ForeignKeys=true)

The first one (MetaDataFactory) specifies which persistence types to
process.  Since a jar file is specified, we will search the jar file for any
persistence types (regardless of whether they are listed in a
persistence.xml file or not).  Our documentation explains this a bit more
[1].

I don't know where the MetatDataFactory setting is coming from... I can't find anywhere where it is set by either Geronimo/OpenEJB. Maybe I'm not looking in the right places.


The next property (SynchronizeMappings) is what I was referring to in
earlier e-mails.  This is the property that tells OpenJPA to please create
the tables if they do not exist.

Yes, that's our default setting for SynchronizeMappings. See var/config/config.xml

You can override by adding the following property in your persistence.xml

<property name="openjpa.jdbc.SynchronizeMappings" value="false" />

--kevan