Still didn't take the time to look into the code :(
By any chance, are you at JavaOne? We might try to check it out together,
what do you think?
Alex

On Fri, May 2, 2008 at 4:01 AM, Adam Hardy <[EMAIL PROTECTED]>
wrote:

> My curiosity finally got the better of me and I put the JPA transaction
> issue to test, and I have to concur with you.
>
> What threw me off the scent is the update method I have on my business
> managers, on which the transactional boundary is set in Spring.
>
> The update() method doesn't sit well with JPA. As you rightly said, all
> that is needed to trigger an update is a transaction.
>
> In effect, the update() method on my business manager doesn't have to
> contain any code at all - just the fact that it invokes the transaction will
> be enough to ensure that all the entities in the entity manager are flushed.
>
> And that's not good for intuitiveness - if someone new read the code and
> saw that I had edited 2 entities but only called update() on one, they would
> obviously ask why on earth the second entity magically updated. I guess I'll
> have to work out a refactoring.
>
>
>
>
> Alexander Snaps on 02/05/08 10:18, wrote:
>
>> It'll probably be around the tx...I've been doing this within Swing apps,
>> trying to fix the wizard in Netbeans around JSR 295, 296 and JPA. Come see
>> my
>> presentation at JavaOne on the subject ;) But I need to see if this can be
>> applied to this situation. I still don't get how changes done while
>> applying
>> the values actually are within a tx demarcation... Doesn't translate in
>> some
>> weird tx management issue? Why would you have the tx begin during these
>> phases?
>>
>> On Fri, May 2, 2008 at 11:11 AM, Adam Hardy <
>> [EMAIL PROTECTED]> wrote:
>>
>>  Alexander Snaps on 02/05/08 10:04, wrote:
>>>
>>>  On Thu, May 1, 2008 at 5:49 PM, Eric D. Nielsen <[EMAIL PROTECTED]>
>>>> wrote:
>>>>
>>>> Alexander Snaps <alex.snaps <at> gmail.com> writes:
>>>>
>>>>> I know I am repeating myself, but what is getting in the way of NOT
>>>>>>
>>>>>>  starting
>>>>>
>>>>>  a transaction at all in the case of a validation error... Shoudn't the
>>>>>> transaction be started much later anyways, and only if validation
>>>>>>
>>>>>>
>>>>>>  passed?
>>>>>
>>>>> Because that doesn't solve the problem.  No transaction has been
>>>>> started explicitly.  The underlying problem is that there are two
>>>>> sources of implicit transactions that can be triggered.
>>>>>
>>>>> 1) Explict session/entityManager.flush() in the cleanup code of
>>>>> OSIV/OEMIV filters
>>>>>
>>>>> 2) Implicit flush before queries.  FlushMode settings appear to help in
>>>>>  some cases, but I've seen reports where it appears that the setting
>>>>> isn't always respected.
>>>>>
>>>>> If a transaction hasn't been started, either of these cases (ie falling
>>>>>  out the bottom of OSIV/OEMIV, or a lazy load query) can trigger
>>>>> writing data to the DB.
>>>>>
>>>>>
>>>>>  no, w/o tx nothing ever gets flushed to the db... I explained the
>>>> behavior you'd get in a previous message. I'll check out the code on my
>>>> flight to SF (should I remember to check it out of scm ;) ) I'll try to
>>>> get back to you with something more concrete...
>>>>
>>>>  I for one will be interested to see what you come up with!
>>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Alexander Snaps <[EMAIL PROTECTED]>
http://www.jroller.com/page/greenhorn
http://www.linkedin.com/in/alexandersnaps

Reply via email to