Spring Dataとは?
データアクセスに関するSpringに用意されているフレームワークです。
Spring Dataの種類
どこにデータアクセスするかによって、いくつか種類が分かれます。
Spring Data JPA
Springで、JPAを利用して、データベースアクセスを行うためのライブラリです。
JPAとは?
Javaの純正の、ORマッピング(JavaでSQLを使いやすくした技術)の技術のことです。JPQLによるデータアクセスを提供します。
詳しくは下記の記事でも解説しています。
Spring Data MongoDB
非SQLであるMongoDBにアクセスするためのライブラリです。
Spring Data Hadoop
Hadoopを利用するためのライブラリです。
Spring Data JPAの概念
「Spring Data」の中でも、一番使われているのはリレーショナルDBを対象にした「Spring Data JPA」でしょう。JPQLによるデータアクセスや排他制御が通常のJPAに比べてアノテーションとかを使えば手軽にできるので格段に楽になっています。
JPAでは、データベースのデータを「エンティティ」という形で、オブジェクト化しています。
同時に、テーブルから取得されるデータも、エンティティのインスタンスとして扱われます。具体的には以下のようなクラスになります。
1 2 3 4 5 6 7 8 9 10 11 |
@Entity @Table(name = 'user') public class User { @Id @Column(name = "id") private String id; @Column(name = "name") private String name; } |
Repositoryインターフェースを作成し、アノテーションやメソッドを定義するだけでEntityの参照・更新を行えるようになる。
Repositoryインターフェースを継承して以下のようにRepositoryクラスを作成します。
1 2 3 |
public interface UserRepository extends JpaRepository<User, Integer> { User findByEmail(String email); } |
エンティティマネージャー
また、そのエンティティたちを管理する「エンティティマネージャー」という存在もいます。
Hibernate EntityManager等、世の中に色々なエンティティマネージャーが出回っています。
「Spring Data JPA」では、色々組み込めるようになっているので、自分の使いやすいものを探しましょう。
この記事へのコメントはありません。