Я начинаю свои самые первые шаги с 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
@AllArgsConstructor
public class ProjectDTO {
private Long Id;
private String projectName;
private String description;
}
Аннотация @Data от Lombok.Я хочу сделать картограф для сопоставления проекта с ProjectDTO, атрибуты, такие как спринты, эпопеи, истории НЕ ДОЛЖНЫ быть включены в ProjectDTO.Это мой интерфейс картографа:
@Mapper
public interface ProjectMapper extends Mapper {
ProjectMapper INSTANCE = Mappers.getMapper(ProjectMapper.class)
ProjectDTO projectToProjectDTO(Project project);
}
Когда я пытаюсь его построить, я получаю сообщение об ошибке:
[ОШИБКА] Невозможно сгенерировать метод сопоставления безвходные аргументы.
Я думаю, это связано с отсутствующими свойствами в ProjectDTO, но я не знаю, как их решить.С @Mapping я не могу сделать это так:
@Mapping(source=“sprints”, target= null)
Любая помощь будет признательна!