我需要定义与预定义的“用户”表相关的新表。请帮助我为此实体图编写正确的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)
基本上,您不能向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存在user于Car对象中的字段名称将是user。因此,您将拥有Car.getUser()方法等。
当您在entity块中定义字段时,您是在定义该实体的属性,而不是关系-该属性独立于模型中的所有其他对象。
您仍然没有User.getCars()办法。当前的jHipster设计无法做到这一点。
| 归档时间: |
|
| 查看次数: |
1983 次 |
| 最近记录: |