I am not sure what your question is here. But I am guessing things just aren't working out how you expect them to be.
Anyway.
First, we have a CODE button below that will post your code and xml with indentations remaining. Without it, it becomes very difficult to read.
For bi-directional this is the exact mapping.
http://www.hibernate.org/hib_docs/v3/reference/en/html/associations.html#assoc-bidirectional-m21 For updating related objects, it is always about cascade options. You will most likely need a cascade attribute on both sides. When you have bi-directional mapping, Hibernate does not know that both map to the same relationship, they are considered seperate, that is what the inverse attribute does. However, Hibernate still needs cascade options for each side , so that if you save from either side, the updates will occur.
Mark