libro
www.tuyano.com
初心者のためのJava Persistence API入門

JPAの基本を覚える (3/7)

作成:2017-10-28 09:10
更新:2017-10-28 09:10

■エンティティクラスの作成

続いて、エンティティクラスを作成しましょう。エンティティクラスは、Javaの普通のクラスとして作成します。

Javaのソースコードファイルは、Mavenの場合、「main」フォルダの中に「java」フォルダを用意して、その中にまとめます。サンプルのプロジェクトでは「java」フォルダは用意されていないと思うので「main」フォルダの中にフォルダを用意して下さい。

この「java」フォルダの中に、パッケージの階層に合わせてフォルダを用意していきます。ここでは、com.tuyano.libroパッケージにクラスを用意しようと思うので、「java」フォルダ内に「com」、その中に「tuyano」、更にその中に「libro」とフォルダを作っていって下さい。そして、「libro」フォルダの中に、「MyDataEntity.java」というファイル名でソースコードファイルを作成します。

では、作成するエンティティクラスのソースコードを下のリスト欄に掲載しておきましょう。エンティティクラスは、だいたい以下のような形で作成します。見ればわかるように、実はごく普通のpure Javaなクラスなのです。
@Entity
public class クラス名 {

    @Id
    private Integer プライマリキーのフィールド;

    ……以後、テーブルの項目をフィールドとして用意……

    public Integer getId(){
        return プライマリキーフィールド;
    }

    ……以後、フィールドのアクセサメソッドを用意……
}

@Entity
これは、このクラスがエンティティクラスであることを示すアノテーションです。エンティティクラスには必ずこのアノテーションを用意します。

@Id
これは、プライマリキーの値を保管するフィールドにつけておくアノテーションです。これにより、このフィールドがプライマリキーの値を保管することがわかります。

@GeneratedValue
これは、このフィールドの値が自動生成されることを示すアノテーションです。これを指定することで、インスタンス作成時にこのフィールドの値を省略することができます。

・フィールド
エンティティクラスには、いくつものフィールドが用意されます。これは、テーブルに用意される項目に対応するものです。エンティティクラスは、レコードの値を保管するのに用いられます。つまり、テーブルにある値を保管するためのフィールドが必要なのです。

今回、MyDataEntityクラスでは、「id」「name」「mail」「tel」「created」といったフィールドが用意されていますね。これらの項目を持ったテーブルを作成し利用するものであることがわかります。

・アクセサ
レコードの値を保管するフィールドには、アクセサ(Setter/Getter)メソッドを用意します。これは、値の読み書きのために必要です。フィールドはすべてprivateですから、値を利用するためにはアクセサメソッドが必要です。

これは、SetterGetterの両方を用意しないといけないわけではありません。例えばMyDataEntityでは、idcreatedでは、Getterメソッドしか用意されていません。これらは、値の取得のみで変更はできないようにするためです。IDが外部から変更できたりしたら問題ですからね。

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

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

package com.tuyano.libro;

import java.util.Date;
import java.util.Calendar;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class MyDataEntity {
    @Id
    @GeneratedValue
    private Integer id;

    private String name;
    private String mail;
    private String tel;
    private Date created = Calendar.getInstance().getTime();

    public MyDataEntity(){
        super();
    }

    public MyDataEntity(String name, String mail, String tel){
        super();
        this.name = name;
        this.mail = mail;
        this.tel = tel;
    }

    public Integer getId() {
        return id;
    }

    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 String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }

    public Date getCreated() {
        return created;
    }
    
    @Override
    public String toString() {
        return "{\n\tid: " + id + ",\n\tname: " + name + ",\n\tmail: "
            + mail + ",\n\ttel:" + tel + ",\n\tdate: " + created + "\n}";
    }

}
※関連コンテンツ

「初心者のためのJava Persistence API入門」に戻る