libro
www.tuyano.com
初心者のためのSpring Framework入門

Spring Data JPAの利用 (5/7)

作成: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
フィールドにつけておきます。テーブル内のコラムを示すためのものです。これを付けたフィールドは、その名前と同じコラムの値を保管するものとして扱われます。従って、コラムの型と同じ型の値でなければいけません。また、サンプルでは、
@Column(length=50, nullable=false)
こんな具合に書かれているものもありますね。これは()内に、コラムの属性を記述しているのです。こんな具合に、そのコラムに設定すべき属性もまとめてアノテーションに記述できます。

@Id
これは、最初のidフィールドにのみ付けられています。このアノテーションは、プライマリキーを示すためのものです。これを付けたフィールドは、そのテーブルのプライマリキーのコラムであることを示します。

@GeneratedValue(strategy=GenerationType.AUTO)
これもidフィールドに付けられていました。これは値の自動生成に関するものです。strategy=GenerationType.AUTOという値を指定することで、値を自動的に設定するようになります。


――用意されているフィールドは、すべてprivateになっており、Setter/Getterメソッドでアクセスするようになっています。この他、2種類のコンストラクタとtoStringを用意してありますが、これらはエンティティに必須というわけではありません。必要に応じて用意すればいいでしょう。

※プログラムリストが表示されない場合

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