Ebean使用非常相似的JPA注释将对象映射到数据库中。我一直在查看@OneToOne @OneToMany @ManyToMany @ManyToOne
关系。
我刚刚了解到反向字段的效率非常低(使用@mappedBy
来确定双向关系时)。
我通常知道,如果我不使用ORM并且只是使用SQL来创建我自己的数据库结构,那么当我遇到这个问题时:
文章< - >标签
这是一对多关系。一篇文章可以有很多标签,一个标签可以附在很多文章上。
通常,使用SQL,我将创建一个Article表和一个Tag表。然后我将创建一个包含两列的单独表:
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
,它会产生反向场吗?我应该如何避免使用它?