我的实体带有byte[]
字段,与DTO对象中的相同。在这两个类中,这些字段都标记为@NotNull
。问题是mapstruct生成这样的代码:
(@javax.validation.constraints.NotNull :: byte)[] data = file.getData();
代替
byte[] data = file.getData()
我可以使用这样的注释
@Mapping(ignore = true, source = "data", target = "data")
“解决”此问题,并在我的服务中设置这些字段,但我认为这不是最佳解决方案。
仅此byte[]
出现问题,其他@NonNull
字段没有问题。
答案 0 :(得分:0)
这是MapStruct 1.2.0.Final中的一个已知错误。自1.3.0.Beta2(此答案发布时的最新版本)以来,该问题已得到修复。
报告的问题是mapstruct/mapstruct#1558。
仅当将ElementType.TYPE_VAR
类型的注释用于基本数组时,才能看到此问题。如果使用int[]
(例如),则会看到相同的问题。