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[](例如)也可以看到同样的问题。