欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java中的OneToMany的使用方法

程序员文章站 2023-12-05 22:05:10
写在开头 使用jhipster声明的onetomany在one的一方dto中是没有与many的dto的映射关系的, 为了在one的一方dto中使用many的dto, 使用...

写在开头

使用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>{  
  ...  
}

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