Entity + Repository + Service - Spring Boot

  • 作成日:
  • 最終更新日:2025/10/11

Entity、Repository、Service について

Entity

DBテーブルのレコードと対応するオブジェクト

Repository

Entity を使って DB にアクセス

Spring Data JPA や Mapper(MyBatis) が SQL 実行

Spring Data JPA の場合はインターフェイスだけでOK

Service

ビジネスロジックを実行

Repository にアクセスして Entity を取得

結果を DTO に変換

Spring Boot での「 RailsのModelに相当する部分 」が Entity + Repository + Service です。

データの流れ(全体像)

Client (ブラウザ, API呼び出し)
    │ HTTP Request
    ▼
@Controller (コントローラ層)
    │ DTO に変換して Service へ渡す
    ▼
@Service (サービス層 / ビジネスロジック)
    │ Entity を使って Repository へアクセス
    ▼
@Repository (リポジトリ層 / DBアクセス)
    │ ORM (JPA/Hibernate) が SQL 実行
    ▼
Database (RDB)
  • controller ← Webリクエストの入り口
  • service ← ビジネスロジック(業務処理)
  • repository ← DBアクセス(永続化処理)
  • entity ← DBテーブルと対応するクラス
  • dto ← データ転送用オブジェクト(画面やAPIとのやり取り)

JPA とは

JPA はJava Persistence APIの略語です。

  • Persistence(パーシスタンス):永続化

「データを永続的に保存すること」= プログラム終了後も残るようにする(DBに保存することが典型)