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に保存することが典型)