sWoRm/Spojo
This framework allows you to copy from one Java Bean to another based on rules definitions. This include also the possibility to use complex data types. The rule definitions are very simple and effective, it exists different ways to define rules: annotations; programmatically; XML.