JDL为DTO中的OneToMany相关实体生成的吸气剂

时间:2019-02-16 19:48:35

标签: java jhipster jdl

我正在使用JDL(JHipster 5.8.1)通过DTO选项定义域模型:

entity Event {
    title               String maxlength(128)             required,
    bannerUrl           String maxlength(256)             required,
    summary             String maxlength(256)             required
}

entity Tag {
    name                String maxlength(64)             required
}

entity Team {
    title           String maxlength(128) required,
    description     TextBlob
}

relationship ManyToMany {
    Event{tags} to Tag{events}
}

relationship OneToMany {
    Event{teams} to Team{event required}
}

relationship ManyToOne {
    Event{city} to City{events}
}

dto * with mapstruct

我试图定义包含多个可重用标签和多个团队的事件。目的是使API生成包含所需事件内的所有标签和所有团队的复合JSON(以避免REST中的N + 1问题)

我希望在Tag <->事件和Team <->事件之间获得双向关系。对于ManyToMany关系,这是事实:我在EventDTO中看到TagDTO的吸气剂。但是对于OneToMany(也是ManyToOne)来说,我在EventDTO中看不到任何getter,在Team中看不到具有eventId getter:

public class EventDTO implements Serializable {

    private Long id;

    @NotNull
    @Size(max = 128)
    private String title;

    @NotNull
    @Size(max = 256)
    private String bannerUrl;

    @NotNull
    @Size(max = 256)
    private String summary;

    private Long cityId;

    private Set<TagDTO> tags = new HashSet<>();

如果eagerload = true,则在没有dto * with mapstruct行的情况下生成的代码会与所有子实体一起产生预期的JSON,但是此方法可能导致安全问题。

是否可以更正我的JDL以产生类似于childEntity的DTO,而不是类似于childId的DTO?

0 个答案:

没有答案