Yeah, when you have a bi-directional association like this, you need to
update both sides of the association.  In other words, you do still have
to update the read-only phones property in this case.   The read-only
attribute is kind of misleading... you do still have to update those
properties, it is just that the assembler does not use those properties
for persisting in the database.  If you don't update them, the cached
copies won't be updated.

 

Jeff

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Kevin
Sent: Monday, March 31, 2008 9:53 AM
To: [email protected]
Subject: [flexcoders] LCDS proper way to commit read-only properties

 

I am trying to figure out the right way to do this. I have a
ContactVO which has a phones collection that is mapped as a read-only
association. In Hibernate we are using the mappedBy annotation and in
the database we have a contact_id columns which joins the ContactVO to
the PhoneVO table.

My actionscript ContactVO has a "contact.phones" collection which we
bind to a datagrid. It seems that if I do this when I create a new
PhoneVO:

ds = new DataService("phones");
ds.createItem(myNewPhoneVO);

..the PhoneVO is persisted in the database BUT the "phones" collection
in my ContactVO is not updated. However, if I refresh the application
OR refill my contacts collection then the new PhoneVO shows up as
expected. It seems as if one uses "createItem" on a read only
property then the associated collection does not get the pushed data.
Is this the expected behavior? 

If so, it seems like I would have to always add the item to my
collection in order to persist it correctly. Is that the "right" way
to commit these read-only collections?

Thanks, Kevin

 

Reply via email to