首页 > 解决方案 > 无法获取实体的数据

问题描述

我使用 jhipster 生成 2 个实体 Employee 和 Department

和关系:

 @ManyToOne
    @JsonIgnoreProperties(value = "employees", allowSetters = true)
    private Department department;
@OneToMany(mappedBy = "department")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private Set<Employee> employees = new HashSet<>();

当我打电话给 api/employees 时,我有:

{
    "id": 1,
    "code": "FU_EMP_DTP726",
    "name": "Concrete system",
    "birthDate": "2020-11-30",
    "address": "Granite frame",
    "phone": "0152104977",
    "salary": 65309.0,
    "department": {
        "id": 1,
        "code": "FU_DE_787778",
        "name": "Tools"
    }
}

但是使用 api/departments ,我有:

{
    "id": 1,
    "code": "FU_DE_787778",
    "name": "Tools",
    "employees": null
}

我不知道为什么部门的员工为空

标签: jhipster

解决方案


在双向一对多关系的情况下,jhipster 不会得到所有 'child' 形式的“One”边,因为“N+1”问题。

为了您的目的,您需要修改生成的代码。使用 EntityGraph 修改存储库、添加“员工”设置到“DepartmentDTO”和 Mapper

如何在 JHipster 生成的一对多关系中查看双方 如何在 JHipster 生成的一对多关系中查看双方


推荐阅读