Hi there,
I using ModelMapper to copy some properties from an existing object to an other ignoring some properties by using an own implementation of PropertyMap. This works fine for simple objects.
But when I like to map an object graph, the depending objects are copied as is and my PropertyMap is ignored.
Here is my mapping code: log.info("destination before: " + destination);
ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new TypeMappingIgnoreLiferayAndDBProperties());
modelMapper.map(source, destination);
log.info("source: " + source);
log.info("destination after: " + destination);PropertyMap: class TypeMappingIgnoreLiferayAndDBProperties extends PropertyMap<Product, Product>
{
@Override
protected void configure()
{
skip().setprimarykey(null);
skip().setModifiedDateItem(null);
skip().setCompanyid(0);
skip().setGroupid(0);
skip().setUserid(0);
skip().setUsername(null);
}
}My Object graph:Products object can have many Product objects. In both objects I like to ignore the properties in my PropertyMap.
log outputs:destination before: Products[product=[Product[string=4,integer=1,_long=1,_boolean=false,date=2014-02-21,restriction=A,base64Binary={84,101,115,116},companyid=0,groupid=0,userid=0,username=<null>,createDate=<null>,modifiedDate=<null>,
primarykey=8]],companyid=10153,groupid=10179,userid=0,username=<null>,createDate=<null>,modifiedDate=2014-02-21,primarykey=4]
source: Products[product=[Product[string=5,integer=1,_long=1,_boolean=false,date=2014-02-21,restriction=A,base64Binary={84,101,115,16},companyid=0,groupid=0,userid=0,username=<null>,createDate=<null>,modifiedDate=<null>,
primarykey=<null>]],companyid=0,groupid=0,userd=0,username=<null>,createDate=<null>,modifiedDate=<null>,primarykey=<null>]
destination after: Products[product=[Product[string=5,integer=1,_long=1,_boolean=false,date=2014-02-21,restriction=A,base64Binary={8,101,115,116},companyid=0,groupid=0,userid=0,username=<null>,createDate=<null>,modifiedDate=<null>,
primarykey=<null>]],companyid=10153groupid=10179,userid=0,username=<null>,createDate=<null>,modifiedDate=<null>,primarykey=4]
As you can see the primary key (as an example) from source Product object is copied and therefore my PropertyMap is only be used on the Products object.
How can I tell ModelMapper to use PropertyMap deeply?
Thank you