在我的应用程序中,我使用ModelMapper库将数据传输对象映射到实体。
一个实体Library
有一个集合(java.util.Set
)包含其他实体Book
。用户应该能够更改集合内容。
在这种情况下,使用数据传输对象UpdateDTO
,其包含要存储在集合中的实体Book
的标识符。
后端使用UpdateDTO
将Library
映射到实体ModelMapper
。
现在假设用户从Book
的集合中删除实体Library
。 UpdateDTO
现在包含Book
的所有实体的列表,而没有用户删除的实体。
当Book
将ModelMapper
映射到实体UpdateDTO
时,我希望该集合缺少用户删除的实体Library
。但与我的期望不同,实体返回Library
仍然包含所有Book
实体。
这是为什么?我已经把CollectionConverter
[0]中的'问题'归结为这些线。
ModelMapper
的存储库包含有关同一问题的问题[0],有关当前实现如何工作的解释和代码,因此如果源大小小于目标大小,ModelMapper
将删除项目。