Я пытаюсь использовать mapstruct в своем проекте 2.4 Java Java JPA. Шаги я сделал:Неизвестное свойство в обратном типе
Добавлена Завис
"org.mapstruct" % "mapstruct-jdk8" % "1.1.0.Beta1",
"org.mapstruct" % "mapstruct-processor" % "1.1.0.Beta1"
Модель
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String fullName;
private String email;
}
EmployeeDto
public class EmployeeDto {
private String full_name;
private String email;
}
EmployeeMapper
@Mapper
public interface EmployeeMapper {
EmployeeMapper INSTANCE = Mappers.getMapper(EmployeeMapper.class);
@Mapping(source = "fullName", target = "full_name")
EmployeeDto employeeToEmployeeDto(Employee employee);
}
Но его дает мне ошибку компиляции
error: Unknown property "full_name" in return type.
[error] @Mapping(source = "fullName", target = "full_name")
Что может быть проблемой для ошибки?
У вас есть сеттер для этого свойства в типе DTO? – Gunnar
@Gunnar У меня нет сеттеров для DTO – silentprogrammer
В этом проблема; MapStruct не использует отражение для получения или установки состояния в отображаемых типах, в генерируемом коде используются обычные вызовы getter/setter для распространения состояния из источника в цель. Существует проблема поддержки доступных полей (например, открытых полей), но это не поможет вам, поскольку вы получили их как конфиденциальные. – Gunnar