[
https://issues.apache.org/jira/browse/OPENJPA-2540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vermeulen updated OPENJPA-2540:
-------------------------------
Priority: Critical (was: Major)
I increased the priority. I just found a dramatic consequence by checking where
this situation occurs in our application.
We have Events that can be edited inside a form using a deep fetchplan and can
also be moved in a calendar using a shallow fetch plan. Our Event contains
billing information inside an embedded entity. When we move the Event in the
calendar, part of this billing information is destroyed!
> merge without DetachedStateField deletes lazy fields in embedded entities
> -------------------------------------------------------------------------
>
> Key: OPENJPA-2540
> URL: https://issues.apache.org/jira/browse/OPENJPA-2540
> Project: OpenJPA
> Issue Type: Bug
> Components: kernel
> Affects Versions: 2.3.0
> Reporter: Vermeulen
> Priority: Critical
> Attachments: Inner.java, Lazy.java,
> LazyFieldsInEmbeddedEntityTest.java, TestEmbeddable.java
>
>
> I am using the setting <property name="openjpa.DetachState"
> value="fetch-groups(DetachedStateField=false)" />
> Like the summary says, I have an embedded entity with a field that is lazily
> fetched. This is a field that is persisted whenever the entity is persisted.
> (It doesn't matter whether it is a @Basic field or a @ManyToOne relation with
> cascade = CascadeType.ALL). When I merge a detached entity that has null for
> such a field, the field is actually made null in the database. The expected
> behavior is for OpenJPA to notice that the field is not in the fetch plan and
> ignore it on merge.
> The problem only exists when using an embedded entity together with the
> DetachedStateField=false setting.
> I created a test case which shows the issue. It is based on that of
> OPENJPA-1983 which reported a similar issue but whose test case didn't use an
> embedded entity.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)