gpt4 book ai didi

java - nullValuePropertyMappingStrategy 不起作用

转载 作者:行者123 更新时间:2023-12-05 03:44:26 24 4
gpt4 key购买 nike

我有以下映射器

@Mapper(config = MappingConfig.class)
public interface PokerRoomMapper {

@Mapping(target = "phase", nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
PokerRoom pokerRoomDtoToPokerRoom(PokerRoomDto pokerRoomDto);

}

传递给它的 pokerRoomDto 有一个可以为空的“阶段”字段。我希望这个字段在它为空时被忽略。但是现在“null”值仍然映射到 pokerRoom 实体。

如果我只是忽略映射器中的字段,它会起作用,并且 PokerRoom 中阶段的默认值保持不变,但我不想总是忽略它。

@Mapper(config = MappingConfig.class)
public interface PokerRoomMapper {

@Mapping(target = "phase", ignore = true)
PokerRoom pokerRoomDtoToPokerRoom(PokerRoomDto pokerRoomDto);

}

最佳答案

这按设计工作。 NullValuePropertyMappingStrategy 仅适用于更新方法。它不用于法线映射。

我认为您正在寻找 NullValueCheckStrategy,如果您使用 NullValueCheckStrategy#ALWAYS,那么 MapStruct 将始终执行非 PokerRoomDto 的空检查并且仅在值不为 null

时调用 PokerRoom 上的 setter

关于java - nullValuePropertyMappingStrategy 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66425389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com