Если у меня есть класс ProfessorDto и класс StudentDto , как можно избежать циклических проблем, если ProfessorDto имеет список StudentDto, а StudentDto имеет свойство типа ProfessorDto? Я не поместил код класса домена, но допустим, что он такой же, как и для Dto.
Я новичок в Mapstruct, преобразовываю бин домена в Dto с простыми свойствами, такими как Long, String работает, но в моем примере связь OneToMany не работает!
@JsonApiResource(type = "professor")
@NoArgsConstructor
@Data
public class ProfessorDto {
@JsonApiId
private Long id;
private String professorName;
@JsonApiRelation(mappedBy = "professor")
private List<StudentDto> student;
public ProfessorDto(Long id) {
this.id = id;
}
}
И ученик класса
@JsonApiResource(type = "student")
@NoArgsConstructor
@Data
public class StudentDto {
@JsonApiId
private Long id;
private String studentName;
@JsonApiRelation
private ProfessorDto professor;
}
Мой картограф для профессора
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ProfessorMapper {
ProfessorDto domainToDto(Professor domain);
Professor dtoToDomain(ProfessorDto dto);
StudentDto studentToDto(Student student);
Student studentDtoToDomain(StudentDto studentDto);
List<StudentDto> studentToDto(List<Student> student);
List<Student> studentDtoToDomain(List<StudentDto> studentDto);
}