作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下映射器
@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/
我有以下映射器 @Mapper(config = MappingConfig.class) public interface PokerRoomMapper { @Mapping(target =
如果源中的相应属性为空,我想将目标对象中的属性映射到默认值(例如,字符串为“”)。我怎样才能做到这一点?我看到了 nullValuePropertyMappingStrategy = NullValu
如果标题不清楚,我深表歉意,让我通过提供示例代码来说明: 更新ProfileDto public class UpdateProfileDto { @NotEmpty private
我是一名优秀的程序员,十分优秀!