Hibernate持久化技术让我们能够工作得更好,我们通过一个例子来简单说明Hibernate持久化技术的应用。
在一般应用程序中,用来实现业务问题实体的(如,在电子商务应用程序中的Customer和Order) 类就是持久化类。不能认为所有的持久化类的实例都是持久的状态--一个实例的状态也可能 是瞬时的或脱管的。
如果这些Hibernat持久化类遵循一些简单的规则,Hibernate能够工作得更好,这些规则也被称作 简单传统Java对象(POJO:Plain Old Java Object)编程模型。但是这些规则并不是必需的。 实际上,Hibernate3对于你的持久化类几乎不做任何设想。你可以用其他的方法来表达领域模型: 比如,使用Map实例的树型结构。
一个简单的POJO例子说明Hibernate持久化
大多数Java程序需要用一个持久化类来表示猫科动物。
package eg;
import java.util.Set;
import java.util.Date;
public class Cat {
private Long id; // identifier
private Date birthdate;
private Color color;
private char sex;
private float weight;
private int litterId;
private Cat mother;
private Set kittens
= new
HashSet();
private void setId(Long id) {
this.id
=id;
}
public Long getId() {
return id;
}
void setBirthdate(Date date) {
birthdate
= date;
}
public Date getBirthdate() {
return birthdate;
}
void setWeight(float weight) {
this.weight
= weight;
}
public float getWeight() {
return weight;
}
public Color getColor() {
return color;
}
void setColor(Color color) {
this.color
= color;
}
void setSex(char sex) {
this.sex
=sex;
}
public char getSex() {
return sex;
}
void setLitterId(int id) {
this.litterId
= id
;
}
public int getLitterId() {
return litterId;
}
void setMother(Cat mother) {
this.mother
= mother;
}
public Cat getMother() {
return mother;
}
void setKittens(Set kittens) {
this.kittens
= kittens;
}
public Set getKittens() {
return kittens;
}
// addKitten not needed by Hibernate
public void addKitten(Cat kitten) {
kitten.setMother(this);
kitten.setLitterId( kittens.size() );
kittens.add(kitten);
}
}