You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by Jacek Laskowski <ja...@laskowski.net.pl> on 2008/01/05 10:47:31 UTC

Re: Alternatives to persistence provider properties in persistence.xml file?

On Dec 13, 2007 4:22 AM, Alexander Saint Croix
<sa...@gmail.com> wrote:

> 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.

It's been a while since you wrote it, but I thought I'd jump in and
add a little.

Simple answer is NO - you can't. It's because that's the main goal of
a ejb container to manage all what needs to be managed, e.g. jpa
entity managers. When <provider> is left out it means you rely on the
default jpa provider of a ejb container. <properties> are not required
at all and are to configure parameters that are specific to a given
jpa provider. Your persistence.xml file could look as follows:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
   <persistence-unit name="example" />
</persistence>

All other elements and attributes are optional. You won't be able to
override the values from persistence.xml file unless you do the job of
an ejb container, i.e. you get your hands dirty managing jpa objects,
like jpa entity manager factory and its entity managers.

Jacek

-- 
Jacek Laskowski
http://www.JacekLaskowski.pl

Re: Alternatives to persistence provider properties in persistence.xml file?

Posted by Alexander Saint Croix <sa...@gmail.com>.
Thanks, Jacek--we worked this out, but it's good to have the answer on the
list for others.

My final strategy was NOT to place a persistence.xml file in my component
library JARs at all.  I instead let the client application determine how the
persistence unit and data sources are set up.  It works out very well.

Cheers,
--
Alexander

On Jan 5, 2008 3:47 AM, Jacek Laskowski <ja...@laskowski.net.pl> wrote:

> On Dec 13, 2007 4:22 AM, Alexander Saint Croix
> <sa...@gmail.com> wrote:
>
> > 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.
>
> It's been a while since you wrote it, but I thought I'd jump in and
> add a little.
>
> Simple answer is NO - you can't. It's because that's the main goal of
> a ejb container to manage all what needs to be managed, e.g. jpa
> entity managers. When <provider> is left out it means you rely on the
> default jpa provider of a ejb container. <properties> are not required
> at all and are to configure parameters that are specific to a given
> jpa provider. Your persistence.xml file could look as follows:
>
> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
>   <persistence-unit name="example" />
> </persistence>
>
> All other elements and attributes are optional. You won't be able to
> override the values from persistence.xml file unless you do the job of
> an ejb container, i.e. you get your hands dirty managing jpa objects,
> like jpa entity manager factory and its entity managers.
>
> Jacek
>
> --
> Jacek Laskowski
> http://www.JacekLaskowski.pl
>