Spring + JPA に対する Spring Data の技術的な利点がいくつかあります。純粋な SQL 環境では、Spring Data に利点があると思います。
- Spring Data はすべての実装で同じ CrudRepository インターフェースを使用するため、JPA から MongoDB に切り替える手間が少なくなります。
- Spring Data を使用すると、同じメソッドを何度も書く必要がなくなります。メソッドをインターフェイスに追加するだけで、生成されます (例: UserRepository.findByUsername())。
- JPA、MongoDB などの REST 実装にボイラープレートを保存できます ( http://projects.spring.io/spring-data-rest/を参照) 。
- 他の永続化サービスまたはインデックス作成サービスを試してみたい場合は、Neo4j、Hadoop、Solr、ElasticSearch、fuzzydb などの成熟したテクノロジーと新しいテクノロジーの両方に Spring Data 実装があります。
MySQL と MongoDB を使用していることを考えると、開発者は 2 つ (JPA と MongoDB Java クライアント) ではなく単一のデータ アクセス API (Spring Data) にコーディングできるため、Spring Data が有力な候補になると思います。
既存のアーキテクチャに関しては、マネージャー層がリッチ ドメイン パターンまたはアクティブ レコードのいずれかを実装しているように聞こえます。
Spring Data は、Spring の @Configurable を使用したサービスの注入と組み合わせると、Rich Domain に非常に適していると私は考えています。
最後に、SQL の代わりに MongoDB などを使用する Spring Security や Spring Social などのサービスを実装する必要がある場合にも、Spring Data は大きな利点をもたらします。
ここにある fuzzydb サンプル webapp でこれを行いました。(免責事項: 私は現在 fuzzydb の唯一の最近のコミッターであり、何年もそれに触れていませんが、そのコードに基づいてライブ サービス www.fridgemountain.com を持っていましたが、それを宣伝することを怠っていました。 )