openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Wisneski" <wisnes...@gmail.com>
Subject Re: [jira] Resolved: (OPENJPA-43) update of a persistent field using a @Lob annotation is not being marked dirty
Date Thu, 14 Sep 2006 18:31:23 GMT
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) <jira@apache.org> 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
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message