Как отобразить oneToMany с помощью ModelMapper - PullRequest
0 голосов
/ 13 июня 2019

Я использую springBoot, я хочу отобразить OneToMany отношения от родителя к ребенку. Непосредственно используя entity с eager выборкой, я получаю рекурсивные записи, поэтому пытаюсь использовать ModelMapper для DTO сопоставления с Entity, но я не могу понять, как это сделать. Пожалуйста, примите getters и setters.

Parent.java

@Entity
public class Parent {

    @Id
    private int parentId;

    private String a;

    @OneToMany(mappedBy = "parent")
    private Set<Child> child;

Child.java

@Entity
public class Child {

    @Id
    private int childId;

    private String c;

    @ManyToOne
    @JoinColumn(name = "b")
    private Parent parent;

У меня есть рабочий репозиторий и сервисный слой с findAll методом.

ParentDto.java

public class ParentDto {

    private String a;

    private Set<Child> child;

ParentController.java

@RestController
public class ParentController {

    @Autowired
    private ModelMapper modelMapper;

    @Autowired
    private ParentService parentService;


    @RequestMapping(method = RequestMethod.GET, value="/parents" )
    public List<ParentDto> getParents() {
        List<Parent> parents =  parentService.getAll();
        return parents.stream()
                .map(x-> modelMapper.map(x, ParentDto.class))
                .collect(Collectors.toList());
    }
}

Ошибка: При попытке получить http://localhost:8080/parents

.
.
ModelMapper mapping errors: 1) Converter org.modelmapper.internal.converter.CollectionConverter@51381583 failed to convert java.util.Set to java.util.Set. 1 error
org.modelmapper.MappingException: ModelMapper mapping errors:

1) Converter org.modelmapper.internal.converter.CollectionConverter@51381583 failed to convert java.util.Set to java.util.Set.

1 error
    at org.modelmapper.internal.Errors.throwMappingExceptionIfErrorsExist(Errors.java:380)
    at org.modelmapper.internal.MappingEngineImpl.map(MappingEngineImpl.java:80)
.
.
...