[ 
https://issues.apache.org/jira/browse/OPENJPA-1873?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13165702#comment-13165702
 ] 

Kevin Sutter commented on OPENJPA-1873:
---------------------------------------

Mark,
Your patch/commit looks pretty straight forward.  The JIRA has such a long 
history, I was wondering what you finally decided to resolve.  It looks like 
you have provided a new property (openjpa.PostLoadOnMerge) which will tell 
OpenJPA to call the PostLoad listener on every Merge.  If that's accurate, then 
some documentation updates would be good to have so that users know about this 
new property.  Thanks.

I also noticed that you updated the OpenJPAConfiguration file to define the 
OPTION_POSTLOAD_ON_MERGE string.  I don't believe these are really even used 
any more.  It looks like maybe this was the old (original) way to specify 
properties, but the updated plugin configuration is much easier -- which you 
also implemented.  Maybe I'm mistaken, but I don't think you need the 
OPTION_POSTLOAD_ON_MERGE updates.  Did you find that you required these?

And, it looks like you resolved the problem with incorrect data being dispensed 
to the PostLoad listener on a Merge -- iff this new option is set. Is that 
correct?

Thanks,
Kevin
                
> EntityManager#merge sometimes passes wrong entity values to @PostLoad 
> EntityListeners 
> --------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-1873
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1873
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 2.0.0, 2.0.1, 2.0.2
>            Reporter: Mark Struberg
>            Assignee: Rick Curtis
>             Fix For: 2.2.0
>
>         Attachments: OPENJPA-1873-fix1.patch, OPENJPA-1873-fix2.patch, 
> OPENJPA-1873-fix3.patch, OPENJPA-1873-unittest.patch, 
> openjpa-1873-hack-1.patch, postloadtest.zip
>
>
> I've tested this with the latest from branches/2.0.x.
> My entity has an @EntityListeners which observes the @PostLoad lifecycle 
> event. This listener stores the 'old' values from the database for later use 
> (see http://struberg.wordpress.com/2010/07/31/howto-changelog-with-jpa/ for 
> the intention behind). All works well if the table has only a few rows. But 
> if you add more rows, OpenJPA tries to optimize the access and only loads the 
> @Version field + the dirty fields. In this case the merging seems to be 
> wrong, because I get the NEW values from the dirty fields instead of the 
> original values from the database passed to my @PostLoad method.
> Did cost me a few grey hairs to track down the differences between the 
> working and the broken scenarios here ;) But finally I was able to creat a 
> unit test showing the problem

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to