Hi all,
I have been following Nathan's WODisplayGroup podcast and incorporating some of his ideas into my own application.
I have a simple WODisplayGroup that displays a group of Localizations. (Localization is the entity). This entity has single to-one relation to another entity called DateFormatCode.
Localization ---------------- code descriptor primaryIdDescriptor primaryIdFormat dateOfBirthFormatCode (-> to-one relationship to DateFormatCode.code)
DateFormatCode ----------------------- code displayedDateFormatString javaDateFormatString
From EOModeler I have set up the relationship and created a simple WODisplayGroup on a WOComponent that has a WOForm that accepts edits to the Localization entity and saves them to the database. The WODisplayGroup is set to "Fetches On Load".
All seems to be working great. I can change any of the attributes of the Localization entity (such as descriptor, primaryIDFormat, etc). When I change any of these attribute, I immediately see the changes reflected in the WODisplayGroup. However, while I can change the dateOfBirthFormatCode, and I even verify it is stored in the database, my WODisplayGroup still shows the old value. (I am actually displaying the displayedDateFormatString attribute by walking the relationship). If I restart the application, then and only then, does the related item reflect the last change.
I have tried to use redisplay() and fetch() on the WODisplayGroup before returning the page, but it did not have any affect. I have searched the lists and found one other who asked a similar question. He eventually answered himself after getting no responses and stating that he used invalidateAllObjects() on his editing context. I tried this as well and it works, but I share his concern that I feel guilty with having to do this. It seems like overkill to me.
Any suggestions?
Thanks,
Kev |