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

时间:2017-07-24 12:16:53

标签: java jhipster jdl

我需要定义与预定义'User'表相关的新表。 请帮我写一个正确的JDL代码 entity diagram

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

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

relationship OneToMany {
  User{id} to Mytable{userid}
}

得到了

{ name: 'IllegalAssociationException',
  message: 'Relationships from User entity is not supported in the declaration between User and Mytable.',
  prototype:
   Error

2 个答案:

答案 0 :(得分:6)

基本上你不能在jhi_user表中添加新字段,JDL不会让你做任何可能导致这种情况发生的事情。

可以将用户对象引用添加到另一个实体,如

relationship ManyToOne {
  Mytable{userid} to User
}

请注意,{anything}后我User - 这意味着User无法知道Mytable是哪个&#39 ; s与...相关联。如果你想"备份"从Mytable的实例到User的实例,您必须从Mytable侧进行搜索;用户不会拥有与Mytable实例相关的任何字段或getter / setter。

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

entity Car {
}

relationship ManyToOne {
  Car{user} to User
}

表示每个User,有Car个,或者说每个Car的另一种方式是userCar,其字段名称在{ {1}}对象将为user。因此,您将拥有Car.getUser()方法等

entity块中定义字段时,您要定义该实体的属性,关系 - 该属性独立于所有其他对象你的模特。

但你仍然没有User.getCars()方法。目前的jHipster设计无法做到这一点。

答案 1 :(得分:0)

我认为jhipster doc中的这个tip可能会对你有所帮助,我从来没有看过它,但是在我的项目中,一个配偶做了这件事,我正在努力工作。希望这可以帮助。您可以随时询问Paul-Etienne以获取更多信息,他很乐意为您提供帮助。