Java Can';使用Mapstruct生成没有输入参数的映射方法

Java Can';使用Mapstruct生成没有输入参数的映射方法,java,jpa,datamapper,mapstruct,Java,Jpa,Datamapper,Mapstruct,我将使用Mapstruct mapper开始我的第一步。我想将JPA数据实体类映射到DTO类。这是我的源代码类: @Entity @Data @Table(name = "projects") public class Project { @Id private Long Id; private String projectName; private String description; @OneToMany(mappedBy = "project")

我将使用Mapstruct mapper开始我的第一步。我想将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注释来自Lombok。 我想制作一个映射器,将项目映射到ProjectDTO,sprint、epics、stories等属性不应该包含在ProjectDTO中。这是我的映射器界面:

@Mapper
public interface ProjectMapper extends Mapper {

    ProjectMapper INSTANCE = Mappers.getMapper(ProjectMapper.class)

    ProjectDTO projectToProjectDTO(Project project);
}
当我尝试构建它时,我得到的错误消息如下:

[错误]无法生成没有输入参数的映射方法

我猜这与ProjectDTO中缺少的属性有关,但不知道如何解决它。使用@Mapping,我不能像这样做:

@Mapping(source=“sprints”, target= null)

任何帮助都将不胜感激

同时添加“@NoArgConstructor”。MapStruct还不能通过构造函数处理对象的构造。另一个选择是使用“@Builder”,如果您的对象确实是不可变的

谢谢您的评论,它在我的情况下不起作用。我通过在ProjectServiceImpl构造函数中获取映射器实例来了解如何找到解决方案。我也将把它放在这里作为回答
@Mapping(source=“sprints”, target= null)