为什么ModelMapper地图集合采用合并样式?

时间:2019-03-16 19:48:41

标签: java modelmapper

在我的应用程序中,我正在使用ModelMapper库将数据传输对象映射到实体。

一个实体Library的集合(java.util.Set)包含其他实体Book。 用户应该能够更改集合内容。

在这种情况下,使用数据传输对象UpdateDTO,其中包含要存储在集合中的实体Book的标识符。

后端使用UpdateDTOLibrary映射到实体ModelMapper

现在假设用户从Book的集合中删除实体LibraryUpdateDTO现在包含Book的所有实体的列表,而用户没有删除它们。

我希望集合在BookModelMapper映射到实体UpdateDTO时丢失用户删除的实体Library。但是与我的期望不同,返回的Library实体仍然包含所有Book实体。

为什么?我已经将“问题”固定在CollectionConverter [0]中的这些行中。

[0] https://github.com/modelmapper/modelmapper/blob/master/core/src/main/java/org/modelmapper/internal/converter/CollectionConverter.java#L62-L63

1 个答案:

答案 0 :(得分:0)

ModelMapper的存储库包含有关同一问题的问题[0],说明了当前实现的工作方式和代码,因此ModelMapper会在源大小小于目标大小的情况下删除项目

[0] https://github.com/modelmapper/modelmapper/issues/423