inflearn logo
inflearn logo

JPAを活用したデータモデリング

JPAの技術説明よりも、エンティティ設計を通じたデータモデリングに集中する講義です。堅牢なDB設計がアプリケーション開発の基礎であるという考えに基づき、一対多・多対多・継承・コレクションなど、多様な設計パターンをビジネスシナリオと共に分析し、コードが実際のテーブルに変換される過程を画面で直接確認しながら学びます。実戦ですぐに活用できるよう、設計パターン別のビジネス事例とソースコード、テストコードを併せて提供します。

18名 が受講中です。

難易度 中級以上

受講期間 無制限

Java
Java
MySQL
MySQL
Spring Boot
Spring Boot
JPA
JPA
JUnit
JUnit
Java
Java
MySQL
MySQL
Spring Boot
Spring Boot
JPA
JPA
JUnit
JUnit

受講後に得られること

  • ビジネス要件を把握し、JPAエンティティ構造に変換するデータモデリング能力

  • 1対1、1対多、多対多、三項関係を状況に合わせて選択し、実装する関連性設計能力

  • 継承構造を持つドメインを、4つの継承マッピング戦略の中から適切な方式で設計する能力

  • Set、List、Map、Bagなど、コレクションタイプ別の特性を理解し、正しくマッピングする能力

  • 実際のプロジェクトにおいて、エンティティ設計の段階から正しい構造を構築する能力

  • 中間エンティティや埋め込み可能なクラスなど、多様なパターンを活用して複雑なドメインを表現する能力

  • 設計したエンティティが実際のDBテーブルとしてどのように生成されるかを予測し、検証する能力

📢 講義紹介

この講義は、JPAをすでに知っている開発者が「どうすればエンティティを正しく設計できるか」という問いに対する答えを見つけられるように構成された講義です。

データモデリングはアプリケーションの礎です。 序盤にエンティティ設計をしっかりと固めておけば、その後のリポジトリ、クエリ、ビジネスロジックがより自然に流れるようになります。この講義はJPAの技術説明よりもエンティティ設計そのものに集中し、単にコードを見せる方式ではなく、ビジネスシナリオの観点から「なぜこの関連性を選択したのか」、「なぜこのマッピング戦略が適しているのか」を共に分析します。

一対多・一対一・多対多といった基本的な関連付けから、継承マッピング、コレクションマッピング、三項関連まで、実務で使われる多様なパターンを扱います。エンティティコードと自動生成されたMySQLテーブルを画面に並べて表示することで、設計の流れを直接目で確認できます。講義で使用したドキュメント、ソースコード、JUnitテストコードもあわせて提供されます。

JPAの基本は知っているが設計に自信がない方、実務ですぐに活用できるデータモデリングの感覚を養いたい方におすすめです。

✨ 講義の魅力ポイント

  • 文法の説明ではなく、実際の設計感覚を養うことに集中します

  • 各設計パターンごとにビジネスシナリオを共に分析し、「なぜこの構造なのか」を理解することができます。

  • エンティティコードと自動生成されたMySQLテーブルを並べて比較し、設計結果を自分の目で直接確認します

  • 基本的な関連付けから継承・コレクション・三項関係まで、実務で使われる多様なパターンを一つの講義で扱います。

  • 学んだパターンをすぐに活用できるよう、類似したビジネス事例を追加で提示します

  • 講義資料、ソースコード、JUnitテストコードまで全て提供され、実習中心の学習が可能です

  • 理論にとどまらず、プロジェクトの現場ですぐに適用可能な設計パターンを扱います

📘 講義で学ぶ内容

1. JPAエンティティの基本マッピング

エンティティと値タイプの概念と違いを理解し、識別子生成戦略、テーブル名の再定義、MySQLタイプマッピングとDDL自動生成方法を学習します。@Column@Embeddedなどの核心的なアノテーションを活用して埋め込み可能なクラスを設計し、ネストされたコンポーネントのマッピングまで、エンティティ設計の基礎をしっかりと固めます。

2. 継承マッピング戦略

継承構造を持つドメインをJPAで表現する4つの戦略(単一テーブル、ジョイン、具象クラス別テーブル、戦略の混合)を比較し、状況に合わせて選択する方法を習得します。埋め込み可能なクラスの継承、多態的な多対一の関連、多態的なコレクション設計まで扱い、複雑な継承構造を持つドメインを正しくモデリングする能力を養います。

3. コレクションマッピング

Set、Bag、List、Mapなど、コレクションタイプ別の特性を理解し、JPAで正しくマッピングする方法を学習します。ソート済みコレクション(Map、Set)と順序付きコレクション(LinkedHashSet、ArrayList、LinkedHashMap)の違いと活用法を習得し、コンポーネントのセット・バッグ・マップなど、値タイプコレクションを設計する方法まで幅広く扱います。

4. 一対多の関連付け

単方向・双方向の一対多関係の実装方式を比較し、ジョインテーブルを活用した選択的一対多関係、埋め込み可能クラスの一対多関連、@JoinTableを活用した連結テーブルの設計まで、一対多関連をさまざまな方式で実装する方法を学習します。

5. 一対一の関連付け

主キー共有、外部主キー生成器、外部キー結合カラム、結合テーブルの活用など、一対一関係を表現する4つの方式を学習します。各方式の特性と長所・短所を比較し、ビジネス要件に合った設計を選択できる能力を養います。

6. 多対多および三項関連

単方向・双方向の多対多関連の実装方法と、中間エンティティを活用して多対多関係をより柔軟に設計する方法を学習します。さらに、コンポーネントやMapデータ構造を活用した三項関連、キー/値構造を活用した高度な関連設計パターンまでを扱い、複雑なドメイン関係を表現する能力を身につけます。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • JPAの基本文法は知っているが、実際のプロジェクトでエンティティ設計をどのように始めるべきか途方に暮れているバックエンド開発者

  • エンティティを適当に作ってしまい、開発の中盤から後半にかけてテーブル構造をひっくり返す経験を繰り返している開発者

  • 一対多、多対多といった基本的な関連性は理解しているが、複雑なビジネスドメインを前にすると手が止まってしまう開発者

  • JPAを独学で勉強したが、継承マッピングやコレクションマッピングなどの高度な設計パターンをきちんと整理したことがない開発者

  • MyBatisからJPAに移行しようとしているが、データモデリングの観点からどのようにアプローチすべきか分からず、途方に暮れている開発者

前提知識、
必要でしょうか?

  • Javaの基本文法(クラス、継承、インターフェース、アノテーションなど)

  • JPAの基本概念および使用方法(永続性コンテキスト、基本アノテーションなど)

  • Spring Boot 基本プロジェクトの構成および実行方法

  • MySQLの基本操作(テーブル構造の確認、基本SQLの理解)

  • JUnit基本テストコードの作成経験

  • 基本的なデータベース設計の概念(PK、FK、正規化など)

  • Spring Data JPAの基本的な使用経験(Repositoryインターフェースなど)

こんにちは
oncodingです。

431

受講生

7

受講レビュー

19

回答

4.7

講座評価

3

講座

カリキュラム

全体

57件 ∙ (10時間 21分)

講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

oncodingの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥22,000

50%

¥5,481