我是这个论坛的新手,也是 Play Framework 的新手。我正在做文凭工作,我有一个小问题,关于 Play 模型,它被映射到 MySQL 模式实体中。
基本上,我有“公告”和“技术”实体(模型),我想在它们之间建立“双重”多对多关系。更具体地说,我想要“RequiredTecnologies”和“Good-To-KnowTechnologies”交叉表。有什么办法可以“拆分”这两个表吗?这是生成一个 ManyToMany 表的代码,其中重复列“id”引用了公告。
// ENTITY ANNOUNCE
...
@Entity
public class Announce extends Model {
...
@JoinColumn(nullable=true)
@ManyToMany
public List<Technology> reqTechno;
@JoinColumn(nullable=true)
@ManyToMany
public List<Tehnologija> gtkTechno;
...
}
// ENTITY TECHNOLOGY
...
@Entity
public class Technology extends Model {
...
@ManyToMany(mappedBy = "reqTechno")
public List<Announce> annRT;
@ManyToMany(mappedBy = "gtkTechno")
public List<Announce> annGT;
...
}
此代码按以下方式在 MySQL 中生成表:
annRT_id reqTechno_id annGT_id gtkTechno_id
______________________________________________
1 2 1 7
1 3 1 9
null null 1 10
2 4 2 7
我想要的结果是:
annRT_id reqTechno_id annGT_id gtkTechno_id
__________________________ ______________________
1 2 1 7
1 3 1 9
2 4 1 10
2 7
提前致谢,如有任何帮助,我们将不胜感激!
附言我使用的 Play 版本是 v. 1.2.5。
最佳答案
使用@JoinTable 为每个表指定不同的表名。 像这样的东西:
@ManyToMany(...)
@JoinTable(name="Announce_reqTechno")
public List<Technology> reqTechno;
@ManyToMany(...)
@JoinTable(name="Announce_gtkTechno")
public List<Technology> gtkTechno;
关于mysql - "Double"PlayFramework中模型之间的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17190690/