Spring Data JPAの利用 (5/7)
作成:2015-07-25 08:34
更新:2015-07-25 08:34
更新:2015-07-25 08:34
■エンティティクラスを作成する
さて、これでようやくSpring Data JPAを利用するための下準備が整いました。ここから、実際にSpring Data JPAを利用するためのコーディングに入ります。
Spring Data JPAは、データベースに作成されるテーブルを扱うのに「エンティティ」と呼ばれるクラスを使います。エンティティは、テーブルの構造をJavaのクラスとして再構築したものです。同時に、テーブルから取得されるデータ類も、エンティティのインスタンスとして扱われます。
下のリスト欄に、簡単なエンティティクラスのサンプルを挙げておきましょう。com.tuyano.libro.dbパッケージに「SampleEntity」というクラスとして作成して下さい。
エンティティクラスでは、テーブルに用意される項目をそのままフィールドとして用意します。つまり、「テーブル=クラス」「カラム=フィールド」という感じで定義するのですね。注意したいのは、ただ定義するだけでなく、それぞれにアノテーションを付けておく、ということでしょう。以下に整理しておきましょう。
@Entity
エンティティクラスに付けておきます。このアノテーションを付けることで、このクラスがエンティティkルアスであることを示します。
@Column
フィールドにつけておきます。テーブル内のコラムを示すためのものです。これを付けたフィールドは、その名前と同じコラムの値を保管するものとして扱われます。従って、コラムの型と同じ型の値でなければいけません。また、サンプルでは、
@Id
これは、最初のidフィールドにのみ付けられています。このアノテーションは、プライマリキーを示すためのものです。これを付けたフィールドは、そのテーブルのプライマリキーのコラムであることを示します。
@GeneratedValue(strategy=GenerationType.AUTO)
これもidフィールドに付けられていました。これは値の自動生成に関するものです。strategy=GenerationType.AUTOという値を指定することで、値を自動的に設定するようになります。
――用意されているフィールドは、すべてprivateになっており、Setter/Getterメソッドでアクセスするようになっています。この他、2種類のコンストラクタとtoStringを用意してありますが、これらはエンティティに必須というわけではありません。必要に応じて用意すればいいでしょう。
Spring Data JPAは、データベースに作成されるテーブルを扱うのに「エンティティ」と呼ばれるクラスを使います。エンティティは、テーブルの構造をJavaのクラスとして再構築したものです。同時に、テーブルから取得されるデータ類も、エンティティのインスタンスとして扱われます。
下のリスト欄に、簡単なエンティティクラスのサンプルを挙げておきましょう。com.tuyano.libro.dbパッケージに「SampleEntity」というクラスとして作成して下さい。
エンティティクラスでは、テーブルに用意される項目をそのままフィールドとして用意します。つまり、「テーブル=クラス」「カラム=フィールド」という感じで定義するのですね。注意したいのは、ただ定義するだけでなく、それぞれにアノテーションを付けておく、ということでしょう。以下に整理しておきましょう。
@Entity
エンティティクラスに付けておきます。このアノテーションを付けることで、このクラスがエンティティkルアスであることを示します。
@Column
フィールドにつけておきます。テーブル内のコラムを示すためのものです。これを付けたフィールドは、その名前と同じコラムの値を保管するものとして扱われます。従って、コラムの型と同じ型の値でなければいけません。また、サンプルでは、
@Column(length=50, nullable=false)こんな具合に書かれているものもありますね。これは()内に、コラムの属性を記述しているのです。こんな具合に、そのコラムに設定すべき属性もまとめてアノテーションに記述できます。
@Id
これは、最初のidフィールドにのみ付けられています。このアノテーションは、プライマリキーを示すためのものです。これを付けたフィールドは、そのテーブルのプライマリキーのコラムであることを示します。
@GeneratedValue(strategy=GenerationType.AUTO)
これもidフィールドに付けられていました。これは値の自動生成に関するものです。strategy=GenerationType.AUTOという値を指定することで、値を自動的に設定するようになります。
――用意されているフィールドは、すべてprivateになっており、Setter/Getterメソッドでアクセスするようになっています。この他、2種類のコンストラクタとtoStringを用意してありますが、これらはエンティティに必須というわけではありません。必要に応じて用意すればいいでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
package com.tuyano.libro.db;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class SampleEntity {
@Id
@Column
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@Column(length=50, nullable=false)
private String name;
@Column(length=100, nullable=true)
private String mail;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public long getId() {
return id;
}
public SampleEntity() {
super();
}
public SampleEntity(String name, String mail) {
this();
this.name = name;
this.mail = mail;
}
public String toString() {
return "SampleEntity [id=" + id + ", name=" + name + ", mail=" + mail + "]";
}
}
※関連コンテンツ
「初心者のためのSpring Framework入門」に戻る