Entity Repository Service の役割について

記事中の経験談は、Spring Frameworkの実務経験によるものです。

Entityの役割

任意にテーブルデータを組み合わせたカスタムエンティティ(ユーザー定義エンティティ)を作成することも可能
しかし、自分の経験上、カスタムエンティティを簡単に認めると、好き勝手なエンティティが乱立するので良くない(当たり前ですね…)

Serviceの役割

業務ロジックを実行するためのメソッドを実装し、主にControllerクラスから呼び出される
業務ロジックで必要となるデータは、Repositoryを介して、Entityオブジェクトとして取得する

経験上、Serviceクラスは業務ロジック全般を担うので、肥大化しがちになる
そのため、各役割に応じて適切にクラスを分割する必要があるかと思います

Repositoryの役割

Spring FrameWork(Java)では、MyBatis(SQLJava オブジェクトを紐付ける永続化フレームワーク)の関数を呼び出す実装をしていました。

参考リンク

4.1. ドメイン層の実装 — TERASOLUNA Global Framework Development Guideline 1.0.0.publicreview documentation