You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Rick Curtis <cu...@gmail.com> on 2014/08/11 20:38:20 UTC
Re: Container Managed EntityManager - is there a chance to control
flush calls ?
Nothing immediately comes to my mind. Perhaps a better explanation of what
you are trying to do will expose some other solution. One question though,
what is currently driving the unwanted flush() calls?
Thanks,
Rick
On Mon, Aug 11, 2014 at 1:24 PM, Christoph Weiss <christoph.weiss@de.ibm.com
> wrote:
> Dear Community,
>
> We are running OpenJPa with "container managed" EntityManagers (using
> WebSphere Application Server).
> Because of technical reasons we want to explicitly control when the
> EntityManager executes the flush.
>
> First I thought that the parameter "FlushMode" could be a solution, but
> reading the documentation I understood it isn't.
> So is there any other way to really control when the flush is executed?
>
> Any reply is appreciated. Thanks for your help in advance!
>
> Cheers
> Christoph Weiss
>
--
*Rick Curtis*
Re: Container Managed EntityManager - is there a chance to control
flush calls ?
Posted by Rick Curtis <cu...@gmail.com>.
Yes OpenJPA will occasionally flush when/if it is deemed necessary. One
example that comes to mind is the openjpa.FlushBeforeQueries property[1]...
I'm sure there are others, but I can't come up with all of the different
ones.
The thing that concerns me is that you have Entities that aren't really
Entities... is there a reason why these things that shouldn't be persisted
aren't just treated as POJOs? It seems that might be a better way to go so
then you won't have to fake OpenJPA out.
[1]
http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#openjpa.FlushBeforeQueries
On Mon, Aug 11, 2014 at 1:55 PM, Christoph Weiss <christoph.weiss@de.ibm.com
> wrote:
> Hi Rick,
>
> Thanks for your reply!
> Well actually we do not have any "unwanted flush calls" but we are scared
> that they might happen ; )
>
> But let's take about the details:
> We try to upgrade an old JEE application (with an custom developed
> PersistenceFramework) to JPA.
> Because of effort and QA reason we want to maintain the old "business
> logic". Here we had objects which are created, modified but never stored
> in the database.
> However those objects are now becoming JPAEntities and so we implemented
> our own UpdateManager. This UpdateManager is taking care that only
> "selected" objects are flushed.
> (as written in one of the previous posts).
>
> The complete concept and implementation is working fine as long as we can
> control when the flush is executed (--> goal "at the end of our EJB
> transaction")
> However talking to colleagues I understand that the EntityManager might do
> flush operations beside the transactions. Reason could be e.g. to free up
> cache or memory.
> And that is something we want to avoid.
>
> Now I am not sure if this are just "rumors" from the colleagues or if
> there are cases where the EntityManager might execute a flush w/o any
> association / trigger from a transaction.
> Can you help on this topic?
>
> Cheers
> Christoph
>
>
>
>
>
>
>
>
>
>
> From: Rick Curtis <cu...@gmail.com>
> To: users <us...@openjpa.apache.org>
> Date: 11.08.2014 20:38
> Subject: Re: Container Managed EntityManager - is there a chance to
> control flush calls ?
>
>
>
> Nothing immediately comes to my mind. Perhaps a better explanation of what
> you are trying to do will expose some other solution. One question though,
> what is currently driving the unwanted flush() calls?
>
> Thanks,
> Rick
>
>
> On Mon, Aug 11, 2014 at 1:24 PM, Christoph Weiss
> <christoph.weiss@de.ibm.com
> > wrote:
>
> > Dear Community,
> >
> > We are running OpenJPa with "container managed" EntityManagers (using
> > WebSphere Application Server).
> > Because of technical reasons we want to explicitly control when the
> > EntityManager executes the flush.
> >
> > First I thought that the parameter "FlushMode" could be a solution, but
> > reading the documentation I understood it isn't.
> > So is there any other way to really control when the flush is executed?
> >
> > Any reply is appreciated. Thanks for your help in advance!
> >
> > Cheers
> > Christoph Weiss
> >
>
>
>
> --
> *Rick Curtis*
>
>
--
*Rick Curtis*
Re: Container Managed EntityManager - is there a chance to control flush
calls ?
Posted by Christoph Weiss <ch...@de.ibm.com>.
Hi Rick,
Thanks for your reply!
Well actually we do not have any "unwanted flush calls" but we are scared
that they might happen ; )
But let's take about the details:
We try to upgrade an old JEE application (with an custom developed
PersistenceFramework) to JPA.
Because of effort and QA reason we want to maintain the old "business
logic". Here we had objects which are created, modified but never stored
in the database.
However those objects are now becoming JPAEntities and so we implemented
our own UpdateManager. This UpdateManager is taking care that only
"selected" objects are flushed.
(as written in one of the previous posts).
The complete concept and implementation is working fine as long as we can
control when the flush is executed (--> goal "at the end of our EJB
transaction")
However talking to colleagues I understand that the EntityManager might do
flush operations beside the transactions. Reason could be e.g. to free up
cache or memory.
And that is something we want to avoid.
Now I am not sure if this are just "rumors" from the colleagues or if
there are cases where the EntityManager might execute a flush w/o any
association / trigger from a transaction.
Can you help on this topic?
Cheers
Christoph
From: Rick Curtis <cu...@gmail.com>
To: users <us...@openjpa.apache.org>
Date: 11.08.2014 20:38
Subject: Re: Container Managed EntityManager - is there a chance to
control flush calls ?
Nothing immediately comes to my mind. Perhaps a better explanation of what
you are trying to do will expose some other solution. One question though,
what is currently driving the unwanted flush() calls?
Thanks,
Rick
On Mon, Aug 11, 2014 at 1:24 PM, Christoph Weiss
<christoph.weiss@de.ibm.com
> wrote:
> Dear Community,
>
> We are running OpenJPa with "container managed" EntityManagers (using
> WebSphere Application Server).
> Because of technical reasons we want to explicitly control when the
> EntityManager executes the flush.
>
> First I thought that the parameter "FlushMode" could be a solution, but
> reading the documentation I understood it isn't.
> So is there any other way to really control when the flush is executed?
>
> Any reply is appreciated. Thanks for your help in advance!
>
> Cheers
> Christoph Weiss
>
--
*Rick Curtis*