Java OneToMany Java中的OneToMany如何使用

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Java OneToMany Java中的OneToMany如何使用

tianshl   2021-03-28 我要评论
想了解Java中的OneToMany怎样使用的相关内容吗,tianshl在本文为您仔细讲解Java OneToMany的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java,OneToMany,下面大家一起来学习吧。

写在开头

使用jhipster声明的OneToMany在One的一方DTO中是没有与Many的DTO的映射关系的, 为了在One的一方DTO中使用Many的DTO, 使用以下三步解决此问题。

步骤

1. OneDTO 中的"mark 1"处为自己写的一对多的关系, 此处变量名称不能与实体One中相应的变量名称一致,否则编译失败。

2. OneMapper 中的"mark 2"处 uses属性添加ManyMapper。

2. OneMapper 中的"mark 3"处使用@Mapping注解声明 Entity 转 DTO 的映射关系。

Entity

@Entity
@Table(name = "one")
public class One {
  ...  
  @OneToMany(mappedBy = "one")
  private Set<Many> manys = new HashSet<>();  
  ...  
  public void setManys(Set<Many> manys) {
    this.manys = manys;
  }  
  public Set<Many> getManys() {
    return manys;
  }
}

@Entity
@Table(name = "many")
public class Many {
  ...  
  @ManyToOne
  private One one;
}

DTO

public class OneDTO {
  ...
  // mark 1
  private Set<ManyDTO> manyDTOS = new HashSet<>();
    ...
   public void setManyDTOS(Set<ManyDTO> manyDTOS) {
    this.manyDTOS = manyDTOS;
  }
  
  public Set<ManyDTO> getManyDTOS() {
    return manyDTOS;
  }
}
  public class ManyDTO {
  ...  
  private Long oneId;  
  ...  
  public void setOneId(Long oneId) {
    this.oneId = oneId;
  }
  
  public Long getOneId() {
    return oneId;
  }
}

Mapper

// mark 2
@Mapper(componentModel = "spring", uses = {ManyMapper.class})
public interface OneMapper extends EntityMapper<OneDTO, One> {  
  // mark 3
  @Mapping(souce = "manys", target = "manyDTOS")
  OneDTO toDto(One one);
  
  ...
  
}
@mapper(componentModel = "spring", uses = {OneMapper.class})
public interface ManyMapper extends EntityMapper<ManyDTO, Many>{  
  ...  
}

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们