【问题标题】:Show a collection in a oneToMany relation in Jhipster在 Jhipster 中以 oneToMany 关系显示集合
【发布时间】:2019-03-20 18:33:37
【问题描述】:

我使用 jHipster 创建了我的应用程序。我有两个具有 oneToMany 关系的实体(课程和主题),从“课程”的角度来看,我想展示主题。 我试过没有成功:

<ng-container *ngFor="let subject of course.subjects">

我发现的唯一方法是恢复所有主题并比较是否 subject.course.id == course.id 但这不是很实用,必须有其他方法

<ng-container *ngFor="let subject of subjects">
<tr *ngIf="subject.course.id == course.id" >

编辑

添加模型

课程.model.ts

export class Course implements BaseEntity {
    constructor(
        public id?: number,
        public name?: string,
        public subjects?: BaseEntity[],
    ) {
   }
}

subject.model.ts

export class Subject implements BaseEntity {
    constructor(
        public id?: number,
        public name?: string,
        public course?: BaseEntity,
    ) {
    }
 }

【问题讨论】:

  • 请让您的问题更清楚,发布subjects的示例数据也将有助于解决问题
  • 对不起,我觉得这个问题很好。你不明白什么?
  • 你在使用 MapStruct 吗?如果是,请检查映射器类中的主题是否被忽略
  • 不,我不使用 MapStruct
  • 我了解到您想检索已填充课程列表的课程实体?尝试使用调试模式来检查资源如何管理查询

标签: java html angular spring jhipster


【解决方案1】:

好的,我解决了这个问题。 jHipster包含@JsonIgnore注解,所以Json发送course的数据时,不包含subjects。 我删除该注释并添加:

课程.java:

@OneToMany(mappedBy = "course", cascade = CascadeType.ALL, fetch=FetchType.EAGER)
@JsonIgnoreProperties("course")
private Set<Subject> subjects = new HashSet<>();

主题.java:

@ManyToOne
@JsonIgnoreProperties("subjects")
private Course course;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多