我正在尝试基于JSON数据创建HTML表。一定是这样的:
说明(使用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"
}
]
}
]
}
]
}
]