[
https://issues.apache.org/jira/browse/OPENJPA-2540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vermeulen updated OPENJPA-2540:
-------------------------------
Description:
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.
was:
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 null because it was not
fetched 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.
> 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
> 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)