Java中的OneToMany的使用方法

 更新时间:2018年04月11日 15:48:26   作者:tianshl  
这篇文章主要介绍了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>{  
  ...  
}

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

相关文章

  • java中File与MultipartFile互转代码示例

    java中File与MultipartFile互转代码示例

    在Java开发中,当需要将本地File对象转换为MultipartFile对象以处理文件上传时,可以通过实现MultipartFile接口或使用CommonsMultipartFile类来实现,本文提供了详细的转换方法和代码示例,需要的朋友可以参考下
    2024-10-10
  • maven 插件 assembly 打tar.gz包的详细过程

    maven 插件 assembly 打tar.gz包的详细过程

    这篇文章主要介绍了maven插件assembly打tar.gz包的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • java: 程序包com.fasterxml.jackson.annotation不存在的解决办法

    java: 程序包com.fasterxml.jackson.annotation不存在的解决办法

    当我们在导入程序之后,系统给出错误提示:java: 程序包com.fasterxml.jackson.annotation不存在,本文主要介绍了Java程序包不存在的三种解决方法,需要的朋友可以参考下
    2024-02-02
  • Java实现打字游戏

    Java实现打字游戏

    这篇文章主要为大家详细介绍了Java实现打字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • Java 函数式编程梳理

    Java 函数式编程梳理

    这篇文章主要介绍了Java 函数式编程梳理,文章通过Lambda表达式展开详细的内容介绍,具有一定参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • Java实现颜色渐变效果

    Java实现颜色渐变效果

    这篇文章主要为大家详细介绍了Java实现颜色渐变效果的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • java实现一个桌球小游戏

    java实现一个桌球小游戏

    这篇文章主要为大家详细介绍了java实现一个桌球小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • 基于parameters参数实现参数化过程解析

    基于parameters参数实现参数化过程解析

    这篇文章主要介绍了基于parameters参数实现参数化过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 如何利用Java正则表达式校验密码规则

    如何利用Java正则表达式校验密码规则

    正则表达式正则表达式是用来指定字符串模式的,可以方便的处理文本信息,这篇文章主要给大家介绍了关于如何利用Java正则表达式校验密码规则的相关资料,需要的朋友可以参考下
    2022-09-09
  • 基于SSM 集成 Freemarker模板引擎的方法

    基于SSM 集成 Freemarker模板引擎的方法

    这篇文章主要介绍了SSM 集成 Freemarker模板引擎,SSM 架构下一般采用 Freemarker,Spring Boot 架构下一般推荐采用 Thymeleaf 模板引擎,需要的朋友可以参考下
    2022-01-01

最新评论