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タイプのプロパティの設定者がありますか? – Gunnar
@Gunnar DTOのセッターはいません – silentprogrammer
それは問題です。 MapStructは、マップされた型で状態を取得または設定するためにリフレクションを使用しません。生成されたコードでは、ソースからターゲットに状態を伝播するためにプレーンなgetter/setter呼び出しが使用されます。アクセス可能なフィールド(パブリックフィールドなど)をサポートすることに問題がありますが、それはプライベートとして宣言されている場合にも役に立ちません。 – Gunnar