[
https://issues.apache.org/jira/browse/OPENJPA-2540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14185250#comment-14185250
]
Vermeulen commented on OPENJPA-2540:
------------------------------------
Thank you for looking into it. A simple workaround is to ensure that all fields
of the embeddable are either not lazy or are in the fetchplan when merging the
entity. This seems to work fine for us, but I can imagine there may be cases
where this gives performance issues.
> 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)