我正在尝试启动一个应用程序,我的想法是先使用命令行拨打实体,然后在UI上工作。这比我最初想的要复杂,因为在某些情况下你得到一个警告说发电机不起作用。这就是它是OneToMany还是ManyToOne,或者这个实体是否是这个关系的拥有者。
最好的解决方法是什么?
如果我可以制定规则,那么我可以决定创建事物的顺序。我担心的是,如果没有一些警告和事情不起作用,那么在复杂的模式中没有任何顺序可以工作。
我的另一个想法是首先生成没有关系的实体,然后编辑json文件以添加关系。那么也许我可以在每个实体上再次运行生成器。不确定这是否会起作用,而且我不能100%确定所需的正确json属性。
其他人尝试了什么?
答案 0 :(得分:5)
规划您的实体和关系,以便在创建实体时,已经创建了所依赖的所有实体。一种方法是使用模式设计器或仅记录实体并按照需要创建它们的顺序。
否则,如您所知,您必须手动连接这些关系,或者使用实体生成器重新创建它们。
但是,即使有了规划,你也必须在现实世界中使用这些方法的混合物。这取决于您对生成的代码修改了多少方法最快的程度。
答案 1 :(得分:4)
Rori的答案基本上就是我所做的,但我想提供一些额外的细节。
首先,我通过发电机创建了各种类型的关系,看看哪些工作有效,哪些工作发出警告。我发现它有时会起作用,有时却没有,但在任何地方都没有记录原因。
这些关系始终有效
一对多
OneToOne(非所有者)
ManyToMany(不是所有者)
这些关系仅在另一个实体已存在时才有效
多对一
OneToOne(所有者)
ManyToMany(所有者)
他们不工作的原因总是一样的。所有这些都需要在另一个表上创建一个外键,如果它还不存在,jHipster就不能这样做。你当然可以忽略这个警告,但我不确定这是否意味着其他任何东西都行不通。
根据这些规则,我制作了一份我的实体列表,并将它们放入一个没有警告的情况下工作。如果某个实体的关系可能会发出警告,那么我只是确保首先创建了另一个实体。
这似乎有效。我发现的唯一一件事就是因为生成器是一次性的东西(你不能用它来修改实体),你必须事先了解你的模式并一次性生成批次。