Rishi,
First of all, read this
http://hibernar.org/articulos_en/persis ... ethods.php
(especially the part that describes what merge() does).
What you are trying to do, is some sort of "code repository style" merge, Hibernate is not designed to do that. How can Hibernate know what properties and/or collection items you want to keep, or to when interpret it as an overwrite?
You will have to resolve that "merging" algorithm yourself, according to your needs, most likely by first retrieving the current object, and then comparing it with the new information you want to persist.