【发布时间】:2019-08-31 08:14:55
【问题描述】:
我正在使用 Mapstruct 映射器开始我的第一步。我想将 JPA 数据实体类映射到 DTO 类。这是我的源类:
@Entity
@Data
@Table(name = "projects")
public class Project {
@Id
private Long Id;
private String projectName;
private String description;
@OneToMany(mappedBy = "project")
List<Sprint> sprints;
@OneToMany(mappedBy = "project")
List<Epic> epics;
@OneToMany(mappedBy = "project")
List<Story> stories;
public Project(Long id, String projectName, String description) {
Id = id;
this.projectName = projectName;
this.description = description;
}
}
这是我的目标类:
@Data
@AllArgsConstructor
public class ProjectDTO {
private Long Id;
private String projectName;
private String description;
}
@Data 注释来自 Lombok。 我想制作一个映射器将项目映射到 ProjectDTO,诸如 sprint、史诗、故事等属性不应包含在 ProjectDTO 中。这是我的映射器界面:
@Mapper
public interface ProjectMapper extends Mapper {
ProjectMapper INSTANCE = Mappers.getMapper(ProjectMapper.class)
ProjectDTO projectToProjectDTO(Project project);
}
当我尝试构建它时,这是我收到的错误消息:
[错误] 无法生成没有输入参数的映射方法。
我猜这与 ProjectDTO 中缺少的属性有关,但不知道如何解决。使用@Mapping,我不能这样做:
@Mapping(source=“sprints”, target= null)
任何帮助将不胜感激!
【问题讨论】:
标签: java jpa datamapper mapstruct