首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用oneToMany映射ModelMapper

如何使用oneToMany映射ModelMapper
EN

Stack Overflow用户
提问于 2019-06-13 07:03:12
回答 3查看 6K关注 0票数 0

我正在使用springBoot,我想映射OneToMany从父母到孩子的关系。直接使用entityeager获取,我得到递归记录,因此,尝试使用ModelMapperEntityDTO映射,但我无法弄清楚如何做到这一点。请假设getterssetters

Parent.java

代码语言:javascript
复制
@Entity
public class Parent {

    @Id
    private int parentId;

    private String a;

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

Child.java

代码语言:javascript
复制
@Entity
public class Child {

    @Id
    private int childId;

    private String c;

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

我有使用findAll方法的工作存储库和服务程序。

ParentDto.java

代码语言:javascript
复制
public class ParentDto {

    private String a;

    private Set<Child> child;

ParentController.java

代码语言:javascript
复制
@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时的

代码语言:javascript
复制
.
.
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)
.
.
EN

回答 3

Stack Overflow用户

发布于 2020-02-28 00:55:26

这与“N+1”和“无限递归”问题无关,可以将Conver方法添加到映射程序中;用ModelMapper https://amydegregorio.com/2018/10/03/mapping-children-with-modelmapper/映射儿童

票数 0
EN

Stack Overflow用户

发布于 2022-11-17 06:34:02

我建议“首选嵌套属性”。

http://modelmapper.org/user-manual/configuration

票数 0
EN

Stack Overflow用户

发布于 2020-02-28 06:56:16

您需要在您的子实体中定义的父映射上使用@JsonIgnore注释。

有关更多信息- https://fasterxml.github.io/jackson-annotations/javadoc/2.5/com/fasterxml/jackson/annotation/JsonIgnore.html,请参阅本文档。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56575008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档