Когда я использую QualifiedByName MapStruct и @Named, это не вступает в силуJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Когда я использую QualifiedByName MapStruct и @Named, это не вступает в силу

Сообщение Anonymous »

Версия MapStruct — 1.5.5.Final, JDK — 17, вот мой код

Код: Выделить всё

@Mapper
public interface UndoIssueConvert {
UndoIssueConvert INSTANCE = Mappers.getMapper(UndoIssueConvert.class);

@Mappings({
@Mapping(target = "undoIssueId", source = "id"),
//          @Mapping(target = "createTime", expression = ("java(undoIssue.getUpdateTime() != null ? undoIssue.getUpdateTime() : undoIssue.getCreateTime())"))
@Mapping(target = "createTime", qualifiedByName = "convertCreateTime")
})
UndoIssuePanelRspVO.UndoIssue toUndoIssue(UndoIssue undoIssue);

List toUndoIssue(List undoIssue);

@Named("convertCreateTime")
default Date convertCreateTime(UndoIssue undoIssue) {
return undoIssue.getUpdateTime() != null ? undoIssue.getUpdateTime() : undoIssue.getCreateTime();
}

UndoIssue toUndoIssueEntity(UndoIssueAddUpdateVO addVO);
}
Но я получаю следующее исключение

Код: Выделить всё

java: Qualifier error. No method found annotated with @Named#value: [ convertCreateTime ]
Я подтвердил, что путь к аннотации указан правильно

Подробнее здесь: https://stackoverflow.com/questions/791 ... ake-effect
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»