从 JDL 文件 jhipster 解析实体时出错

Error while parsing entities from JDL file jhipster

我使用 JDL studio 创建文件没有错误,但是当我使用 jhipster cli 导入文件时出现以下错误:

在当前项目的 node_modules 中使用本地安装的 JHipster 版本执行 jhipster:import-jdl ./thearthacker-jdl.jh
选项:
正在解析 jdl。
events.js:182
      扔呃; // 未处理的 'error' 事件
      ^
错误:错误!
从 JDL 解析实体时出错
    在 Environment.error(E:\web_project\_PROJECT\thearthackers\node_modules\yeoman-environment\lib\environment.js:140:40)
    在 constructor.error(E:\web_project\_PROJECT\thearthackers\node_modules\generator-jhipster\generators\generator-base.js:1686:18)
    在 constructor.parseJDL(E:\web_project\_PROJECT\thearthackers\node_modules\generator-jhipster\generators\import-jdl\index.js:108:22)
    在对象。 (E:\web_project\_PROJECT\thearthackers\node_modules\yeoman-generator\lib\index.js:417:23)
    在 E:\web_project\_PROJECT\thearthackers\node_modules\run-async\index.js:25:25
    在承诺 ()
    在 E:\web_project\_PROJECT\thearthackers\node_modules\run-async\index.js:24:19
    在 E:\web_project\_PROJECT\thearthackers\node_modules\yeoman-generator\lib\index.js:418:9
    在 runCallback (timers.js:781:20)
    在 tryOnImmediate (timers.js:743:5)

这是我的 JDL 文件:

entity Video {
    name String required,
    type String required,
    url String required,
    quality String,
   description String required,
    submissionDate ZonedDateTime required
}
entity Picture {
    name String required minlength(3),
    type String required,
    url String required,
    size String,
    description String,
    submissionDate ZonedDateTime required
}

entity Blog {
    name String required minlength(3),
}

entity Entry {
    title String required,
    content String required,
    date ZonedDateTime required
}

entity Tag {
    name String required minlength(2)
}


relationship ManyToMany {
    Entry{tag(name)} to Tag{entry}
}

relationship ManyToMany {
    Picture{tag(name)} to Tag{Picture}
}

relationship ManyToMany {
    Video{tag(name)} to Tag{Video}
}

relationship ManyToMany {
    Blog{tag(name)} to Tag{Blog}
}

relationship ManyToMany {
    User{tag(name)} to Tag{User}
}

relationship ManyToOne {
    Video{video} to User
}

relationship ManyToOne {
    Picture{video} to User
}

relationship ManyToOne {
    Blog{video} to User
}

relationship ManyToOne {
    Entry{video} to Blog
}

paginate Entry, Tag with infinite-scroll

dto * with mapstruct

有什么想法吗?

感谢您的帮助。

我刚刚尝试了您的 JDL 并收到此错误消息:

IllegalAssociationException: Relationships from User entity is not supported in the declaration between User and Tag.

请注意,我使用的是当前的开发分支,所以我有一条您可能没有的错误消息(您没有提供您的版本号,但最近有所改进)。

这意味着您不能从用户实体建立关系,因为它不能被 JDL 修改——这是特定于用户实体的。您可以找到更多信息 on the relationships documentation.

对此有几种解决方案:您可以与用户建立一对一的关系,并拥有您通过 JDL 管理的另一个实体。或者您可以手动修改用户实体(有些人子 class 它并在子 class 上工作,以免更改用户)。