3

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

我尝试编写文件“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
4

2 回答 2

11

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

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

relationship ManyToOne {
  Mytable{userid} to User
}

请注意,我不是{anything}后面User——这意味着User它不知道Mytable它与哪个相关联。如果要从 的实例“备份”Mytable到 的实例User,则必须从Mytable侧面搜索;用户不会有任何与Mytable.

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

entity Car {
}

relationship ManyToOne {
  Car{user} to User
}

意味着 for each User, there are many Cars,或者另一种说法是,对于每Car一个对象中user的字段名称都是. 所以你会有方法等。CaruserCar.getUser()

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

但是,您仍然没有User.getCars()方法。这在当前的 jHipster 设计中是不可能的。

于 2017-07-24T12:21:48.537 回答
0

我认为jhipster doc 中的这个技巧可能会对你有所帮助,我从未看过它,但是在我正在进行的项目中,一位伙伴这样做了。希望这可以帮助。您可以随时向Paul-Etienne询问更多信息,他会很乐意提供帮助。

于 2017-07-27T10:15:20.603 回答