Hibernate 简明教程

Hibernate - Persistent Class

Hibernate 的整个概念是获取 Java 类属性中的值,并将它们持久化到数据库表中。映射文档帮助 Hibernate 确定如何从类中提取值,并将其与表和关联字段进行映射。

在数据库表中存储其对象或实例的 Java 类在 Hibernate 中称为持久类。如果这些类遵循一些简单规则,Hibernate 就能很好地工作,这些规则也称为 Plain Old Java Object (POJO) 编程模型。

以下为持久类的主要规则,但其中没有一项属于硬性要求:

  1. 所有将被持久化的 Java 类都需要一个默认构造函数。

  2. 所有类都应包含一个 ID,以便在 Hibernate 和数据库中轻松识别对象。此属性映射到数据库表的基准密钥列。

  3. 所有将被持久化的属性应声明为私有的,并以 JavaBean 样式定义 getXXXsetXXX 方法。

  4. Hibernate 的中心功能代理取决于持久类是非 final 的,或者声明所有公共方法的接口的实现。

  5. 所有没有扩展或实现 EJB 框架所需的一些专门类和接口的类。

POJO 名称用于强调给定对象是普通的 Java 对象,而不是特殊对象,特别是不是 Enterprise JavaBean。

Simple POJO Example

基于以上提到的几个规则,我们可以如下定义一个 POJO 类:

public class Employee {
   private int id;
   private String firstName;
   private String lastName;
   private int salary;

   public Employee() {}
   public Employee(String fname, String lname, int salary) {
      this.firstName = fname;
      this.lastName = lname;
      this.salary = salary;
   }

   public int getId() {
      return id;
   }

   public void setId( int id ) {
      this.id = id;
   }

   public String getFirstName() {
      return firstName;
   }

   public void setFirstName( String first_name ) {
      this.firstName = first_name;
   }

   public String getLastName() {
      return lastName;
   }

   public void setLastName( String last_name ) {
      this.lastName = last_name;
   }

   public int getSalary() {
      return salary;
   }

   public void setSalary( int salary ) {
      this.salary = salary;
   }
}