You might check out my ModelMapper. It will intelligently map properties (fields/methods) even if the names are not exactly the same. Defining specific properties to be mapped or skipped is simple and uses real code instead of XML:
ModelMapper modelMapper = new ModelMapper();modelMapper.addMappings(new PropertyMap<Order, OrderDTO>() { protected void configure() { map().setBillingStreet(source.getBillingStreetAddress()); skip().setBillingCity(null); }});
Check out the project homepage for more info: