加载JHipster EAGER以获取JSON

时间:2019-03-18 14:33:50

标签: json jhipster

我正在尝试基于JSON数据创建HTML表。一定是这样的:

enter image description here

说明(使用JHipster-Angular 2):

文件:与表具有@OneToMany关联关系

:具有与字段的@OneToMany冲突和具有文件的@ManyToOne冲突

(即表是文件的子项)

字段:与@Table有@ManyToOne冲突(即,Field是Table的子级)

在表和字段之间,有一个 Group 类,该类与Table有@ManyToOne冲突关系(即,Group是Table的子级),但在Field上是可选的,即,Fields可以是Groups的一部分,也可以不是Groups的一部分

我尝试使用在使用JHipster生成实体时创建的“查询”方法来获取所有文件。但是它在Table上返回null,即不打印子项:

  

文件:[{“ id”:1001,“版本”:“ 0009”,“名称”:“文件A”,“表”:空}]

因此在File.java上,我更改为:

@OneToMany(mappedBy = "file", fetch = FetchType.EAGER) // I've added Eager loading
private Set<Table> tables = new HashSet<>();

在Table.java上,我更改为:

@OneToMany(mappedBy = "table", fetch = FetchType.EAGER) // I've added Eager loading
private Set<Field> fields = new HashSet<>();

但是当尝试以这种方式加载所有文件时,java崩溃了,也许他处于无限打印循环中。

如何获取包含所有文件及其子级(表),子级表(组和字段)以及组的子级(字段)的JSON?像这样:

Files: [
  {
    "id": 1001,
    "name": "File A",
    "tables": [
      {
        "id": 2001,
        "name": "Table A1",
        "fields": [
          {
            "id": 4000,
            "name": "File f0"
          }
        ],
        "groups": [
          {
            "id": 3001,
            "name": "Group G",
            "files": [
              {
                "id": 4001,
                "name": "File F1"
              },
              {
                "id": 4002,
                "name": "File f2"
              }
            ]
          }
        ]
      }
    ]
  }
]

0 个答案:

没有答案