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入門」に戻る