Mapstruct在实现中添加注解
Mapstruct add annotations in implementation
我得到了带有 byte[]
字段的实体,与我的 DTO 对象中的一样。在两个 类 中,这些字段都被注释为 @NotNull
。问题是 mapstruct 生成这样的代码:
(@javax.validation.constraints.NotNull :: byte)[] data = file.getData();
而不是
byte[] data = file.getData()
我可以像那样使用注释
@Mapping(ignore = true, source = "data", target = "data")
解决"solve"这个问题,并在我的服务中设置这些字段,但我认为这不是最佳解决方案。
只有这个byte[]
有问题,其他@NonNull
个字段没有问题。
这是 MapStruct 1.2 中的一个已知错误。0.Final。它自 1.3.0.Beta2(本回答时的最新版本)以来已得到修复。
报告的问题是 mapstruct/mapstruct#1558。
仅当 ElementType.TYPE_VAR
类型的注释用于基本数组时才会出现此问题。如果使用int[]
(例如)也可以看到同样的问题。
我得到了带有 byte[]
字段的实体,与我的 DTO 对象中的一样。在两个 类 中,这些字段都被注释为 @NotNull
。问题是 mapstruct 生成这样的代码:
(@javax.validation.constraints.NotNull :: byte)[] data = file.getData();
而不是
byte[] data = file.getData()
我可以像那样使用注释
@Mapping(ignore = true, source = "data", target = "data")
解决"solve"这个问题,并在我的服务中设置这些字段,但我认为这不是最佳解决方案。
只有这个byte[]
有问题,其他@NonNull
个字段没有问题。
这是 MapStruct 1.2 中的一个已知错误。0.Final。它自 1.3.0.Beta2(本回答时的最新版本)以来已得到修复。
报告的问题是 mapstruct/mapstruct#1558。
仅当 ElementType.TYPE_VAR
类型的注释用于基本数组时才会出现此问题。如果使用int[]
(例如)也可以看到同样的问题。