I think I am doing what you suggest.  After changing the value of home the
program does
 e.setHome( e.getHome().setStreet(" new value"));

There was a typo in my code.  But even doing this, the update is not being
written back to the database at commit or flush.


On 9/10/06, Marc Prud'hommeaux (JIRA) <[EMAIL PROTECTED]> wrote:

    [ http://issues.apache.org/jira/browse/OPENJPA-43?page=all ]

Marc Prud'hommeaux resolved OPENJPA-43.
---------------------------------------

   Resolution: Invalid

This is actually a known and intractible limitation: we are not able to
intercept internal modifications for opaque types or arrays. So for those
types, if OpenJPA is to detect that they were changed, they need to be
re-set in their owning objects. E.g., in addition to doing:

myPC.getSomeBlob().someInternalField++;

you should also do:

myPC.setSomeBlob(myPC.getSomeBlob());

That should be sufficient to mary it "dirty". Alternately, you can use the
OpenJPAEntityManager.dirty() method to explicitly mark the field dirty.

> update of a persistent field using a @Lob annotation is not being marked
dirty
>
------------------------------------------------------------------------------
>
>                 Key: OPENJPA-43
>                 URL: http://issues.apache.org/jira/browse/OPENJPA-43
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>            Reporter: David Wisneski
>
> An entity has a persistent field which is a serialable class annotated
with @Lob.  I am able to
> create and persist instances of this entity and field.  But when the
entity is retrieved and the
> field is updated, the update is not written back at commit.
> @Entity
>  class Employee {
>   @Id  int id;
>   @Lob  Address home;
> class Home implements Serializable {
>     String street
>   EntityManager em =
>   em.getTransaction().begin();
>   Employee e = em.find(Employee.class, 1);
>   Address home = e.getHome();
>   home.setStreet("123 New Avenue");
>   e.setHome(e);
>   em.getTransaction().commit();   <--  the update to home address does
not occur.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



Reply via email to