I have finished making the changes and the use of the "merge" call seems to be a) much simpler and b) more robust than the way the current code works.
Unfortunately we've made enough changes to the code surrounding the HibernateAssembler so I can't just send you the updated file and have it work in FDS2. It will be in an upcoming public beta but I don't think we've announced the dates on that. Jeff ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of parkerwhirlow Sent: Thursday, February 15, 2007 3:29 PM To: [email protected] Subject: [flexcoders] Re: FDS/Hibernate Sample of updating hierarchical list of values Hey Jeff, just curious if you've got any updated HibernateAssembler code with some fixes? Any idea when this would be available? thanks, PW --- In [email protected] <mailto:flexcoders%40yahoogroups.com> , "Jeff Vroom" <[EMAIL PROTECTED]> wrote: > > My apologies - this does look like a bug. I need to do more testing on > this case myself, but I think one of the big problems here is that we > are trying to do conflict detection on our own in the hibernate > assembler's updateItem method. Unless you are using a strict isolation > level in your DB (repeatable read or serializable) this is not going to > be transactionally correct anyway since the DB version can be modified > after we have executed the query and before we do our update. We > probably should not be getting the server version at all... hibernate > has its own optimistic concurrency support that we should be using if it > is enabled. That is probably the only way to get atomic conflict > detection without resorting to using those particularly slow isolation > levels. > > > > That would potentially get rid of the conflicting version of the item in > the transaction. The other thing I need to look into is the "merge" > method in hibernate. Seems like we should probably be using that in the > updateItem method? I'll be working on this next week so will send out > any updates I can to the code. > > > > Jeff > > > > ________________________________ > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> ] On > Behalf Of parkerwhirlow > Sent: Thursday, February 01, 2007 6:05 PM > To: [email protected] <mailto:flexcoders%40yahoogroups.com> > Subject: [flexcoders] FDS/Hibernate Sample of updating hierarchical list > of values > > > > > Hi all, > > I have been tearing my hair out trying to get FDS/Hibernate to update > a hierarchical list of values. Even the simplest of collection > mappings in Hibernate cause various exceptions when trying to update. > > Before I post my details, does anyone have any examples of this that > work? Has anyone ever even gotten this to work? > > I have two objects mapped in Hibernate: > > - Family > ----Person > > where a Family has a Set of Person "familyMembers". > > My FDS destination is to Family, and I am trying to update a family > member (just the name) through this destination. > > First, I was getting Hibernate NonUniqueObjectException, which I > finally tracked down to having my hibernate collection mapping set to > lazy=false This caused all of the family member Person objects to be > loaded into the PersistenceContext when the HibernateAssembler loaded > the "serverVersion" of the Family. > > Then, once I set lazy=true on the collection mapping, I was getting an > exception that "A collection with cascade="all-delete-orphan" was no > longer referenced by the owning entity instance"... since it is > assigning a whole new collection to the familyMembers property one > becomes unreferenced, and the other referenced. Sooo I can't use > delete orphan to delete the family members when the family is > deleted... OK. So then I make cascade="all". > > Now I'm getting "ORA-01407: cannot update > ("SCHEMA"."T_PERSON"."FAMILYID") to NULL"... I'm guessing that it's > processing the dereferenced collection first (trying to detatch any > Person's from the family before they're re-attached by the new > collection. I can't believe this is so difficult... > > For more info on my setup and test case, please see my original post: > http://tech.groups.yahoo.com/group/flexcoders/message/63308 <http://tech.groups.yahoo.com/group/flexcoders/message/63308> > <http://tech.groups.yahoo.com/group/flexcoders/message/63308 <http://tech.groups.yahoo.com/group/flexcoders/message/63308> > > > any comments as to if anyone has done this successfully are greatly > appreciated! > > thanks, > PW >

