データ保存用のクラスを定義する
では、データの保管を行うための準備を整えましょう。ここでは、ごく簡単な値を保管するためのクラス「SampleData」を作成します。このクラスには、以下のような値を保管するためのプロパティを用意します。
id――自動割付されるID番号(Long値)。いわゆるプライマリキーとして使うもの。
message――簡単なメッセージを保管するもの(String値)。
account――メッセージを記入した人のアカウント名を保管する(String値)。
date――メッセージを保管した日時を保管する(Date値)。
package jp.allabout;
import java.util.Date;
import javax.jdo.annotations.*;
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class SampleData {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private String message;
@Persistent
private String account;
@Persistent
private Date date;
public SampleData(){}
public SampleData(String message,String account,Date date){
this.message = message;
this.account = account;
this.date = date;
}
public Long getId() {
return id;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public Date getDate() {
return date;
}
}
このクラスは基本的にはごくシンプルなBeanクラスなのですが、よく見るとアノテーションが随所に書かれていることに気がつきます。これがポイントなのです。ざっと整理しておきましょう。
@PersistenceCapable(identityType = IdentityType.APPLICATION)
クラス定義の冒頭に必ずつけます。これをつけることで、JDOによる永続化可能クラスと認識されるようになります。
@PrimaryKey
プライマリキーであることを示すものです。フィールド名の前につけます。
@Persistent
フィールド名の前につけます。永続化されることを示します。また、idフィールドの前には、(valueStrategy = IdGeneratorStrategy.IDENTITY)というものがついていますが、これによりID番号が自動生成されることを示します。