1
我想在我的Play 2.4 Java8 JPA项目中使用mapstruct。步骤我做:返回类型中的未知属性
添加依赖
"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类型中该属性的setter? – Gunnar
@Gunnar我没有DTO设置者 – silentprogrammer
那就是问题了; MapStruct不使用反射来获取或设置映射类型的状态,在生成的代码中使用普通的getter/setter调用来将状态从源传播到目标。支持可访问的字段(例如公共字段)有一个问题,但这不会帮助您,因为您将它们声明为私有。 – Gunnar