从 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 上工作,以免更改用户)。
我使用 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 上工作,以免更改用户)。