第2章 テーブル同士を連携しよう

2.2 それぞれのアノテーションについて

エンティティ間のリレーションを保つための専用のアノテーションは、機能に合わせて使い分ける必要があります。それぞれのアノテーションがどのような処理をするのか、確認していきましょう。

2.2.1 @OneToOneについて

直訳すると『1対1』となります。その名の通り、2つのエンティティが1対1で対応する連携を示すものです。例えば、市民とマイナンバーで考えてみましょう。マイナンバーは原則として1名につき1件発行されます。これは1対1の関係が保たれていることになります。

2.2.2 @OneToManyについて

直訳すると、『1対多』となります。これは1つのエンティティに対し、エンティティ複数が対応するものです。本屋さんのシステムで考えると、1人の購入者は、一度に何冊でも本を購入することができます。つまり利用者1人に対し、複数の書籍が対応するわけです。

2.2.3 @MenyToOneについて

直訳すると、『多対1』となります。複数のエンティティに対し、もう一方のエンティティ1つだけが対応するものです。@OneToManyの逆で考えるとわかりやすいですが、書籍情報テーブルから見れば、複数の本が一人の利用者に紐づけされていることになります。

2.2.4 @MenyToMenyについて

直訳すると、『多対多』となります。これは複数のエンティティに対し、他方のエンティティが対応するというものです。先ほどの本屋さんのシステムで考えてみましょう。1人の購入者は複数の本を購入することができますし、本も何人もの人に購入されます。

NEXT>> 2.3 複数のテーブルを元にデータを取得しよう