服务器之家

服务器之家 > 正文

Java中的OneToMany的使用方法

时间:2021-04-21 14:48     来源/作者:tianshl

写在开头

使用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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 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>{ 
  ... 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://my.oschina.net/tianshl/blog/1617662

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
返回顶部