猿问

为什么模型映射器地图集合具有合并样式?

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

一个实体有一个包含其他实体的集合 ()。用户应该能够更改集合内容。Libraryjava.util.SetBook

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

后端使用 将 映射到实体。UpdateDTOLibraryModelMapper

现在假设用户从 的集合中删除了一个实体。现在包含所有实体的列表,其中没有用户删除的实体。BookLibraryUpdateDTOBook

我希望集合缺少用户在映射到实体时删除的实体。但与我的预期不同,返回的实体仍包含所有实体。BookModelMapperUpdateDTOLibraryLibraryBook

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

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


绝地无双
浏览 147回答 2
2回答

偶然的你

的存储库包含有关同一问题的问题 [0],对当前实现如何工作的解释,以及如果源大小小于目标大小,则代码将删除项目。ModelMapperModelMapper[0] https://github.com/modelmapper/modelmapper/issues/423

江户川乱折腾

默认情况下,合并列表是正确的,但您可以将其关闭:ModelMapper mapper = new ModelMapper(); mapper.getConfiguration().setCollectionsMergeEnabled(false);请参见:http://modelmapper.org/user-manual/configuration/
随时随地看视频慕课网APP

相关分类

Java
我要回答