tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dain Sundstrom <d...@iq80.com>
Subject Re: Alternatives to persistence provider properties in persistence.xml file?
Date Thu, 13 Dec 2007 17:50:57 GMT
The openjpa.ConnectionURL, openjpa.ConnectionDriverName,  
openjpa.ConnectionUserName and openjpa.ConnectionPassword properties  
are OpenJPA specific properties that you use when you are in an  
unmanaged environment.  When embedded into a managed environment,  
like OpenEJB, you should use the spec defined "jta-data-source" and  
"non-jta-data-source" elements nested under the "persistence-unit"  
element.  For example:

https://svn.apache.org/repos/asf/openejb/trunk/openejb3/examples/ 
webapps/ejb-examples/src/main/resources/META-INF/persistence.xml

You will most likely want to keep the  
openjpa.jdbc.SynchronizeMappings property which causes OpenJPA to  
auto create missing database tables and columns.  This is a vendor  
specific property that is required by spec to be ignored by other  
vendors.  If you want to support other JPA implementations, you will  
have to determine what the equivalent property is for each vendor (or  
in this case provide you users some SQL to create the tables).

-dain


On Dec 12, 2007, at 7:22 PM, Alexander Saint Croix wrote:

> Hello,
>
> I'm working on an application that at the moment includes a single
> (proof-of-concept) entity bean in my main web application WAR, and  
> also
> large number of entity beans which are JAR'd in the WEB-INF/lib.
>
> Knowing that the persistence management is all outboard and not  
> contained
> inside of OpenEJB, perhaps you guys could help me with a matter of
> configuration anyway.
>
> I wonder whether there is any way for me to NOT include the  
> <provider> and
> <properties> elements defining the persistence provider  
> implementation,
> connection URL, connection driver name, username and password in the
> persistence.xml file for my entity/POJO jar (the one inside of WEB- 
> INF/lib),
> but rather configure that specific portion of the persistence.xml file
> inside of the context of the application that is using these  
> beans?  It
> doesn't seem to be any of the POJO JAR's business what type of  
> persistence
> provider is being used to persist its contents.
>
> I've attached an example of the <provider> and <properties>  
> elements I wish
> to exclude below.  I want to define classes but not persistence  
> provider
> information in the entity JARs, and define the persistence provider  
> for
> these persistence-units once at the container level.  Is this  
> possible, and
> if so, how might I accomplish that separation with OpenEJB?
>
> Regards,
> --
> Alexander R. Saint Croix
>
>
>
> <persistence xmlns="http://java.sun.com/xml/ns/persistence"  
> version="1.0">
>     <persistence-unit name="example" transaction- 
> type="RESOURCE_LOCAL">
>         <provider>
>             org.apache.openjpa.persistence.PersistenceProviderImpl
>         </provider>
>
>         <class>org.eremite.SomeBeanInThisJar</class>
>
>         <properties>
>             <property name="openjpa.jdbc.SynchronizeMappings"
>                       value="buildSchema"/>
>
>             <property name="openjpa.ConnectionURL"
>                       value="jdbc:mysql://localhost/corm"/>
>
>             <property name="openjpa.ConnectionDriverName"
>                       value="com.mysql.jdbc.Driver"/>
>
>             <property name="openjpa.ConnectionUserName"
>                       value="username"/>
>
>             <property name="openjpa.ConnectionPassword"
>                       value="password"/>
>         </properties>
>     </persistence-unit>
> </persistence>


Mime
View raw message