Ebean 使用非常相似的 JPA 注释将对象映射到数据库中。我一直在检查@OneToOne @OneToMany @ManyToMany @ManyToOne
关系。
我刚刚了解到逆场非常低效(@mappedBy
用于确定双向关系时)。
我通常知道,如果我不使用 ORM 而只是使用 SQL 创建自己的数据库结构,当我遇到这个问题时:
文章 <-> 标签
这是多对多的关系。一篇文章可以有多个标签,一个标签可以附加到许多文章上。
通常,使用 SQL,我将创建一个 Article 表和一个 Tag 表。然后我将创建一个包含两列的单独表:
文章_标签表:
PrimaryKey ID (int)
ArticleID (int) ForeignKey to Article Table
TagID (int) ForeignKey to Tag Table
文章表:
PrimaryKey ArticleID (int)
Article Title (varchar)
标记表:
PrimaryKey TagID (int)
Tag Title (varchar)
我现在唯一的问题是我应该/可以如何用 Ebean(JPA) 表示法翻译/重写它?
首先,我需要为这个 Article_Tag 表创建一个名为 Article_Tag 的模型还是由 Ebean 自动创建?
其次,我应该如何注释我的文章模型和我的标签模型来描述这种关系?哪个是@mappedBy
哪个?
第三,如果我使用@mappedBy
,它会产生逆场吗?我应该以及如何避免使用它?