【问题标题】:Join query in Spring Data JPA在 Spring Data JPA 中加入查询
【发布时间】:2021-06-15 13:33:36
【问题描述】:

我有两张桌子:

  1. 具有以下属性的汽车公司: C_id(主键), C_name
  2. Car_model 具有以下属性: Com_id(参照 Car_company 的 C_id), 型号_年 保修

我希望单独访问这两个表,并且我希望对它们执行连接操作并显示所有 car_model 及其 car_company 名称。我尝试同时使用 JPQL 和本机查询,但没有任何效果。我还确保使用 OneToMany 和 ManyToOne 关联,但我最终得到了无限嵌套,即模型将 car_company 作为字段,这反过来将 car_models 作为列表,并且继续进行。请帮助我处理实体类和 DAO。

【问题讨论】:

    标签: spring spring-boot hibernate spring-data-jpa


    【解决方案1】:

    您可以通过 oneToMany 注释获取 CarCompany 实体中每个汽车公司的 CarModel 列表,如下所示:

     @OneToMany(mappedBy = "carCompany", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    private List<CarModel> carModels;
    

    或在 CarModel 实体中获取所有带有公司字段的汽车模型,如下所示:

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "Com_id", referencedColumnName = "C_id", nullable = false)
    private CarCompany carCompany;
    

    仅出于性能目的将您的关系定义为 LAZY 并在您将响应映射到数据传输对象 (DTO) 时防止循环嵌套。

    【讨论】:

      猜你喜欢
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 2013-12-01
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多