Hibernate持久化技术让我们能够工作得更好,我们通过一个例子来简单说明Hibernate持久化技术的应用。

  
  在一般应用程序中,用来实现业务问题实体的(如,在电子商务应用程序中的Customer和Order) 类就是持久化类。不能认为所有的持久化类的实例都是持久的状态--一个实例的状态也可能 是瞬时的或脱管的。
  
  如果这些Hibernat持久化类遵循一些简单的规则,Hibernate能够工作得更好,这些规则也被称作 简单传统对象(POJO:Plain Old 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);
  
  }
  
  }