Thanks you for the reply. I'll try it and post it in the forum too. Cheers! Sebastian
On 06/02/13 12:24, Emmanuel Bernard wrote: > It's better to use the user forums but here are a few hints. > > Depending on the collection type, Hibernate can delete the precise rows > that it needs to. In other cases it has to clean all rows and recreate > them. > > It seems you are using a collection that is neither a Set nor an indexed > collection (List, Map) - or mapped as such. Consider @OrderColumn if you > use a List as it's a more correct mapping. > > Emmanuel > > On Tue 2013-02-05 15:39, Sebastian wrote: >> Hello, >> >> My name is Sebastián Marichal, im Computer Engineer and im from Uruguay. >> Actually im working in a great bearing system, using JavaEE and >> Hibernate as ORM. >> >> We implemented an audit mechanism using triggers in order to know each >> insertion and deletion from the database. Everything is working very >> well, but we noticed that in many-to-many associations , when adding an >> element to a collection, hibernate deletes de full collection and >> inserts each element again. For example: >> >> 1 - We have A with a collection of B elements: A ---> [B1,B2,B3] >> >> 2 - Add another B elemento to the collection: A.addB(B4) >> >> 3 - Hibernate delete all the rows from the mapping table A_B and then >> inserts all the B elements again. Something like this: >> >> A.removeAll(B1,B2,B3) >> A.insert(B1) >> A.insert(B2) >> A.insert(B3) >> A.insert(B4) >> >> We noticed this because the log of the audit mechanism was very dirty, >> where we expected to see "B4 inserted into A_B table" we acctually see >> "B1 deleted from A_B table" >> "B2 deleted from A_B table" >> "B3 deleted from A_B table" >> "B1 inserted into A_B table" >> "B2 inserted into A_B table" >> "B3 inserted into A_B table" >> "B4 inserted into A_B table" >> >> >> We needed to avoid this kind of dirty log, so we decided to implement >> native query for many to many collection manipulation, but this fix >> isn't good enough because the version number (we are using optimistic >> locking) of the entity isn't being updated automatically. >> >> Is there any way to change de add and remove implementation of hibernate >> for many-to-many associations? Maybe extending hibernate? I know that >> there si an extension api but im not sure if it can be used for this >> purpose. >> >> I would like your opinion and suggestions! >> >> >> Thanks you!! >> >> Sebastián Marichal >> _______________________________________________ >> hibernate-dev mailing list >> hibernate-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/hibernate-dev _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev