[
https://issues.apache.org/jira/browse/OPENJPA-126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Patrick Linskey resolved OPENJPA-126.
-------------------------------------
Resolution: Fixed
> EntityManagers cannot be serialized
> -----------------------------------
>
> Key: OPENJPA-126
> URL: https://issues.apache.org/jira/browse/OPENJPA-126
> Project: OpenJPA
> Issue Type: New Feature
> Components: jpa, kernel
> Affects Versions: 1.1.0
> Reporter: Patrick Linskey
> Priority: Blocker
> Fix For: 1.1.0
>
> Attachments: openjpa-126.patch
>
>
> EntityManagers are not serializable or externalizable. This makes passivation
> of an EntityManager a difficult task. We should investigate how to
> externalize an EntityManager in a meaningful way. This could mean just
> writing out a stub that contains configuration information (potentially even
> just the persistence unit name, or the Configuration's ID), or it could mean
> actually serializing some or all of the local transactional cache to disk.
> The implications for the functionality available after deserialization would
> differ depending on the approach taken.
> I would like to see an implementation that efficiently wrote all the
> unflushed, dirty objects to disk. This would probably be best implemented via
> a writeReplace() strategy, to avoid handling all the transient fields in a
> Broker. Deserialization would then turn into a factory lookup plus some sort
> of in-place reattachment of the deserialized unflushed instances.
> Of course, if the entity instances themselves were not serializable, it would
> be difficult to write them to disk. Theoretically, we could just write out
> the corresponding StateManagers, and track the changed fields ourselves. I do
> not think that this is a good approach, however, since it would cause the
> deserialized objects to lose any non-persistent state after deserialization.
> I think that it is fair to require that instances be declared Serializable in
> order to use this feature.
> (We could optimize this a tad by detecting if an instance has only persistent
> fields, and if so, do our own serialization work.)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.