Hi Mike,

We run into this issue. but in our case, we only use local EJBs, why the
entities get serialized and deserialized?

thanks


mikedd wrote:
> 
> Hi
> 
> I've seen this happen when an entity is serialized and deserialized.
> During
> the serialization process the State of the entity was lost. So when the
> entity was reattached OpenJPA couldn't differentiate between an unloaded
> field and one that was intentionally set to null.
> 
> To resolve the problem you can add the following property to
> persistence.xml
> :
> 
> <property name="openjpa.DetachState"
>                 value="fgs(DetachedStateField=true)" />
> 
> The real key here is the DetachedStateField=true part which instructs
> OpenJPA to save the State of the entity when it is serialized and
> deserialized.
> 
> This option needs to be in your persistence.xml when the entities are
> enhanced. If you use static enhancement via the PCEnhancer tool you'll
> have
> to re-run the tool after updating persistence.xml. If you don't use static
> enhancement the container will enhance your entities for you - so you'll
> just need to redeploy.
> 
> Hope this helps,
> -Mike
> 
> On Fri, Mar 7, 2008 at 2:28 PM, <[EMAIL PROTECTED]> wrote:
> 
>> Yes, that's exactly what I am seeing, and perhaps I didn't give enough
>> detail...
>>
>> In my case, the EJB service fetches the entity, it gets detached when it
>> moves from the EJB container to the web tier, user updates the entity,
>> pass
>> it back to the service where it's "merged"... the fields that were nulled
>> are not getting persisted.  It has to do with detaching the entity then
>> re-attaching it again.
>>
>> I've found a HACK (emphasis on HACK) to solve it in the interim..  I
>> basically take the detached entity, re-fetch the managed one, copy
>> properties from the detached to the managed entity, then let the managed
>> entity persist normally.  But it gets tedious when you're dealing with
>> entities with 30-40 attributes and you can't use the Commons
>> copyProperties
>> because of version columns, etc. (fields that are restricted).
>>
>> If there is a better solution, I'd be more than happy to entertain it!
>>
>> Thanks!
>> Randy
>> >
>> > From: Tedman Leung <[EMAIL PROTECTED]>
>> > Date: 2008/03/07 Fri PM 01:34:32 CST
>> > To: users@openjpa.apache.org
>> > Subject: Re: Newly null fields not being persisted?
>> >
>> > I reported this as a bug earlier and I never heard back, it still
>> occurs.
>> > A more detiled explanation of what I found is as follows  :
>> >
>> > - If you have a new entity with null fields, the fields will save as
>> null.
>> >
>> > - If you have an entity which is attached, you can nullify fields as
>> long
>> > as it persists itself. i.e. without you calling the merge method.
>> >
>> > - If you retrieve an entity and detach it, then null a field, then
>> > reattach it (with merge), it will not nullify the field.
>> >
>> >
>> > if anyone knows the code well enough to fix it or point me to the area
>> > where the logic of this is done that would be good.
>> >
>> >
>> >
>> > On Fri, Mar 07, 2008 at 01:28:40PM -0600, [EMAIL PROTECTED] wrote:
>> > > All,
>> > >
>> > > I'm not sure if this is a problem in MY code or OpenJPA.  But, here
>> are the symptoms in WAS w/ EJB Feature pack:
>> > >
>> > > User enters data into a form that is backed by a managed OpenJPA
>> entity.  Entity gets persisted successfully.  User goes back to the same
>> page and nullifies one of the fields (i.e., deletes a value from one of
>> the fields in the form).  Entity gets persisted, but, the field that was
>> nulled out is not updated.
>> > >
>> > > Looking at the generated SQL in the WAS log, I see the first update
>> that added the data, but in the second update statement, the field that
>> was
>> nulled is not included in the update (thus leaving data in the underlying
>> table).
>> > >
>> > > Is there a setting in OpenJPA that turns this off?  Or, could it
>> (most
>> likely) be a problem in my code somewhere?
>> > >
>> > > Any suggestions on how I can track this down and eliminate it?
>> > >
>> > > Cheers!
>> > > Randy
>> > >
>> >
>> > --
>> >                                                            Ted Leung
>> >                                                           
>> [EMAIL PROTECTED]
>> >
>> > You know things are getting a little fishy when you're commenting out
>> > comments.
>> >
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Newly-null-fields-not-being-persisted--tp15904016p15908495.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to