【问题标题】:Ebean Many To Many RelationShip in PlayframeworkPlayframework中的Ebean多对多关系
【发布时间】:2018-07-29 19:56:33
【问题描述】:
我想在两个表“术语”和“同义词”之间创建多对多关系,但我现在不知道如何编写模型!
任何帮助!还有很多。
【问题讨论】:
标签:
playframework
many-to-many
relationship
ebean
【解决方案1】:
为此,您需要 2 个模型。在Term类中:
@Entity
public class Term extends Models {
@Id
private String id;
@ManyToMany
private List<Synonym> synonyms = new ArrayList<>();
}
在Synonym 类中:
@Entity
public class Synonym extends Models {
@Id
private String id;
@ManyToMany
@JoinTable
private List<Term> terms = new ArrayList<>();
}
对于您的数据库结构,它将如下所示:
CREATE TABLE term {
id CHAR(255)
}
CREATE TABLE synonym {
id CHAR(255)
}
CREATE TABLE term_synonym {
term_id CHAR(255),
synonym_id CHAR(255),
PRIMARY KEY(term_id, synonym) // This is needed to avoid having the same many to many relation
}
需要term_synonym表来维护数据库级别的@ManyToMany关系。