如何在JHipster 3.x中创建具有相关实体列表的实体视图

How to create an entity view with list of related entities in JHipster 3.x?

本文关键字:实体 列表 视图 创建 JHipster      更新时间:2023-09-26

JHipster新手,请耐心听我说:)。我想在实体详细信息视图上显示相关实体的列表。我该怎么做呢?由于这在此应用程序中很常见,因此最好有一种通用的方式来完成此操作,而不是修改每个实体(例如通过修改生成器),但如果没有其他方法,则可以对每个实体进行编辑。

一个例子:我有课程,每个课程可能有许多课程,学生和客户连接。现在,在课程字段下面的课程详细信息视图中,我想为每个相关的课程、学生和客户提供三个列表(例如,类似于SalesForce所做的)。

这个问题有两个方面:如何获得适当的数据(序列化),以及如何更改视图?后者(更改视图)似乎很简单,如果我手工为每个实体,但会很好有它生成。

这似乎是一个常见的UX主题。是否有一个示例应用程序覆盖了这个用例?

谢谢你的指点!

总之:

1)你让你的CourseResource交付急切获取实体的Course,其中有没有 @JsonIgnore在你的课程集。最后,通过调用一个课程,JSON应该包含相关的实体。

detail (edit) :

考虑一下,您使用这样的jdbc生成应用程序:

entity Course {
    courseName String
}
entity Lesson {
    lessonName String
}
relationship OneToMany {
    Course{lesson} to Lesson
}

然后首先进入Course类,将Set更改为:

@OneToMany(mappedBy = "course", fetch = FetchType.EAGER)
//@JsonIgnore - remove this
private Set<Lesson> lessons = new HashSet<>();

这是最快的方法,但不是性能最好的,因为每次查询课程时,您也加入了课程。为了避免这种情况,您必须在您的存储库中构建一些@Query,然后手动连接到它…但我现在将保持简单。

删除@JsonIgnore将导致课程隐式地成为课程表示的一部分,因此您将在UI中获得可视化的所有选项

2)找到某种方式来显示它,以你想要的方式

总的来说,我觉得有一些生成器似乎是个好主意,但它可能比你想象的要困难。比如,如何表示数据。如果您与该实体有多个关系,您会使用选项卡吗?如果有制表符,但只有一个关系,制表符还够用吗?在JHipsters中央生成器中决定这个是否足够,还是应该向开发人员开放?

我认为,这值得讨论,但无论如何,可以做一些JHipster模块来完成这个

问好

<罢工>注:如果我的回答太简短,请问我……只是太晚了,我懒得贴一个完整的答案:)