为什么JHipster说我的实体没有声明?

为什么JHipster说我的实体没有声明?,jhipster,Jhipster,在file1.jdl中,我有实体X定义,导入jdl正确地生成了它,并且可以在.jhipster/X.json中看到它 在file2.jdl中,我有以下关系: relationship OneToMany{ X{subordinateX} to X{superiorX} } 当我尝试在file2.jdl上导入jdl时,会出现以下错误: 解析来自JDL的应用程序和实体时出错错误:在X和X之间的关系中,未声明X和X 这是个问题还是我做错了什么 Thx我想这是因为你定义了一种双向的自我关系,似

在file1.jdl中,我有实体X定义,导入jdl正确地生成了它,并且可以在.jhipster/X.json中看到它

在file2.jdl中,我有以下关系:

relationship OneToMany{
    X{subordinateX} to X{superiorX}
}
当我尝试在file2.jdl上导入jdl时,会出现以下错误:

解析来自JDL的应用程序和实体时出错错误:在X和X之间的关系中,未声明X和X

这是个问题还是我做错了什么


Thx

我想这是因为你定义了一种双向的自我关系,似乎你在为某种树或层次结构建模

如果您是在SQL中执行此操作,我怀疑这会导致在遍历树时出现性能问题。如果您搜索“如何在SQL中表示树”,您会发现这是一个经典问题,根据您使用的数据库引擎,您甚至可能会找到一个特定的结构来管理它。您还可以搜索“如何在JPA中表示树”

您是否尝试过将其简化为“X{X}to X”以避免双向性

所以,这可能是JHipster中的一个bug,但可能很难修复,因为它在UI中有很多含义。请随意在github上报告,也许其他人会提出修复方案


作为一种解决方法,您可以尝试创建一个外部实体来具体化这种层次关系(SQL中的一种联接表),只包含两列从属和上级。

您找到了解决方案吗?我也有同样的问题,问题是实体和关系在两个单独的文件中声明。每件事都使用一个文件,它应该可以工作。就性能而言,就像@Marziou所说的,我不知道。最后,我的解决方案走了另一条路。我使用的是JHipster 6.8.0。谢谢你的回答,我想我也有类似于你的问题,我的情况是,我有一个用jhipster生成的项目,已经部署并处于生产模式,今天我必须向现有的表添加一个关系,而我不能用jhipster cmd来完成!!你知道吗?我只想向现有表添加关系。发布JDL文件和错误日志,以便检查。嘿,我也有同样的问题,我只想知道这个错误是否已在最新版本上修复?有什么想法吗?