以下にHibernateを用いた場合のソースコードを示します。Zooクラス自体はきれいにPOJO(Plain Old Java Object)にまとまっているのですが、アクセッサ(getXXX/setXXX)の記述が冗長です。また、どうしても定義ファイルの記述量が膨らんでしまっています。クラスファイル
public class Zoo {
private int id;
private String name;
private String address;
private Set animals;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
(中略)
public List getAnimals(){
return animals;
}
public void setAnimals(Set animals){
this.animals = animals;
}
}
JPAは最近策定された仕様ということもあり、Hibernateに比べCoCに対応しています。JPAではJava SE 5.0から導入された「アノテーション(@XXXの部分)」を用いてマッピング情報を記述します。そして定められた規約にのっとっていれば、ほとんどのアノテーションを省略することができるのです。