7

I am using BeanUtils.copyProperties() for bean to dto mapping when I need to map all fields and field names are same. But I need not all field of source bean to map in destination dto, I used DozerBeanMapper.map() , because I haven't idea about to use BeanUtils in this situation.

So I think both methods having their own functionality, and there is no any similarity between both. Am I right? Please guide me.

skaffman
  • 398,947
  • 96
  • 818
  • 769
Pankaj Kumar
  • 81,967
  • 29
  • 167
  • 186

2 Answers2

9

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:

http://modelmapper.org

Makyen
  • 31,849
  • 12
  • 86
  • 121
Jonathan
  • 5,027
  • 39
  • 48
6

We considered mapstruct for our usecase. See a sample below:

@Mapper
public interface MyMapper {

    MyMapper INSTANCE = Mappers.getMapper(MyMapper.class);

    To to(From from);

}

Here is a performance comparison of MapStruct against Selma, Orika, ModelMapper, Dozer and manual mapping:

Manual mapping vs. Selma vs. MapStruct vs. Orika vs. ModelMapper vs. Dozer

Selma vs. MapStruct

Community
  • 1
  • 1
user2775185
  • 1,099
  • 3
  • 17
  • 30