[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] question about composite persistence unit
|
Hi,
On Wednesday 07 March 2012 - 14:57:26, Tom Ware wrote:
> On 06/03/2012 11:27 PM, Geronimo Ma. Hernandez wrote:
>
> What I am hoping to do in this thread is help you get going without such an
> extension ...
Yes, I understand your intention and I appreciate it a lot.
> ... since even in the best case, it will be some time before we can
> implement such an extension.
That's no problem at all, as I do some research on a prototype ...
> The situation I imagine is one where you have a default persistence unit
> that lists your base classes. When you want to extend your persistence
> unit, you call refreshMetadata(Properties) and include a property that
> points at a way to get an orm.xml file.
Ok, but what if I have 5 completely independent plugins, that all provide
entity classes. Using a map (properties), I can reference only one orm.xml
file.
> It is not clear to me how this is different from what you are asking. Please
> provide an explanation of that in your enhancement request.
It might for sure be, that I don't know enuf of eclipselink to answer this
question.
From my point of understanding I can provide a orm-file, but what shall I do on
activation of the second or third extension?
I'd like to use a way to extend my app, that is not limited to any number of
plugins ...
If there is a singleton - let's call it EntityRegistry - that I publish from
base app to all plugins.
So each time a plugin with new entities gets activated, the plugin can
register its entities to the central registry (and the registry can manage 2
timestamps - one for last call of refreshMetaData and one for last update of
entitylist).
Each time I use an EntityManager, I could check the timestamps if a refresh is
needed.
Don't know, whether that behavior is already possible with current
implementation.
> I am not sure what you mean by injecting a provider, but another option in
> the refreshMetadata(Properties) call is providing the classname of a class
> that is called to get the new metadata. That class is a class you
> implement yourself.
From my understanding this ends up at the same problem, than by using a
properties parameter - I can provide only one orm.xml description and I have
one for each activated plugin, that provides entities.
> > I additionally vote for extending the EntityManager to allow the usage of
> > ConnectionPools in Client-environments too.
> > In RCP-apps it would be very nice, if a long running persistence job
> > could be run in background and the app continue without any
> > restrictions.
>
> EntityManager does allow the use of connection pools. EntityManager is
> analagous to our ClientSession. A ClientSession does all its database
> access through a ServerSession. The ServerSession supports connection
> pooling. EntityManager/ClientSession never access the database directly.
May be I'm blind. I skimmed the available docs for information about
configuration and didn't find some - could you give me a sample on how I have to
setup my Richclient-Configuration to be able to use pooling connections?
kind regards
Gero