预定义表USER和我自己的表之间的JHipster关系

vea*_*tki 3 java jhipster jdl

我需要定义与预定义的“用户”表相关的新表。请帮助我为此实体图编写正确的JDL代码

我试图写文件“ mytable.jh”并导入:> jhipster import-jdl mytable.jh

entity MyTable{
    userid Long, //relation to table jhi_user
}

relationship OneToMany {
  User{id} to Mytable{userid}
}
Run Code Online (Sandbox Code Playgroud)

并得到

{ name: 'IllegalAssociationException',
  message: 'Relationships from User entity is not supported in the declaration between User and Mytable.',
  prototype:
   Error
Run Code Online (Sandbox Code Playgroud)

all*_*tic 8

基本上,您不能向jhi_user表中添加新字段,并且JDL不允许您执行任何会导致这种情况发生的事情。

可以使用以下内容将User对象引用添加到另一个实体

relationship ManyToOne {
  Mytable{userid} to User
}
Run Code Online (Sandbox Code Playgroud)

注意:有,我{anything}User-这意味着User不知道哪些Mytable与相关联。如果要从的实例“备份” Mytable到的实例User,则必须从Mytable侧面进行搜索;用户将没有与的实例相关的任何字段或getter / setter Mytable

另请注意,该userid字段不一定严格用于关联两个实体。JDL和代码生成实际上负责为您创建关系和主/外键。所以

entity Car {
}

relationship ManyToOne {
  Car{user} to User
}
Run Code Online (Sandbox Code Playgroud)

表示每个对象User都有许多Car,或者用另一种方式表示Car存在userCar对象中的字段名称将是user。因此,您将拥有Car.getUser()方法等。

当您在entity块中定义字段时,您是在定义该实体的属性,而不是关系-该属性独立于模型中的所有其他对象。

您仍然没有User.getCars()办法。当前的jHipster设计无法做到这一点。