From: Benjamin L. (JIRA) <ji...@an...> - 2009-05-21 14:21:40
|
[ http://jira.andromda.org/browse/HIB-219?page=all ] Benjamin Lerman updated HIB-219: -------------------------------- Attachment: HibernateMetafacadeModel.xml.zip > Handle bidirectional associations. > ---------------------------------- > > Key: HIB-219 > URL: http://jira.andromda.org/browse/HIB-219 > Project: Hibernate Cartridge > Type: New Feature > Versions: 3.0M3, 3.0RC1, 3.0 RC2, 3.0 Final, 3.0.1, 3.1M1, 3.1-RC1, 3.1, 3.2-RC1 > Reporter: Benjamin Lerman > Assignee: Carlos Cuenca > Attachments: HibernateMetafacadeModel.xml.zip, hibernate-patch > > The hibernate cartridge do not take into account if an association is bidirectional when it does generate the getter setter for the association. > That means it is of the responsibility of the user to synchronize the two end of the associations. > I join a patch that add a "handleBidirectionalAssociations" option to the hibernate namespace. When this option is enable, the getter and setter of the bidirectional associations are modified so that synchronization of bother ends is automatically handled. > For this, I do the following: > The property is renamed with a Internal suffix. There is a usual getter/setter for this internal attribute, but with a package protected visibility. > The hibernate mapping file are modified to point to this internal attribute. > An Accessor class is created on the same package as the entity class that has public static method that allows direct access to the internal property. > For a *-to-One relation, usual getter, setter are generated, that automatically handle other end of the association, using the Accessor if needed. > For a *-to-Many relation, 4 methods are created: getter, setter, adder and remover. All handle bidirectionality. The getter should return an unmodificable collection but this is still to do because finding the correct Collections.unmodifiableXXX to use does not seem that easy. > I join the patch as well as the meta-facade model > -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.andromda.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |