Hibernate - 持久化類



Hibernate 的核心概念是從 Java 類屬性中獲取值並將其持久化到資料庫表中。對映文件幫助 Hibernate 確定如何從類中提取值並將其與表和關聯欄位對映。

其物件或例項將儲存在資料庫表中的 Java 類在 Hibernate 中稱為持久化類。如果這些類遵循一些簡單的規則(也稱為**普通舊 Java 物件**(POJO)程式設計模型),Hibernate 的工作效果最佳。

持久化類有以下主要規則,但是,這些規則都不是硬性要求:

  • 所有將被持久化的 Java 類都需要一個預設建構函式。

  • 所有類都應該包含一個 ID,以便在 Hibernate 和資料庫中輕鬆識別您的物件。此屬性對映到資料庫表的 primary key 列。

  • 所有將被持久化的屬性都應宣告為 private,並以 JavaBean 樣式定義**getXXX** 和**setXXX** 方法。

  • Hibernate 的一個核心功能——代理,依賴於持久化類要麼是非 final 的,要麼實現了宣告所有公共方法的介面。

  • 所有不擴充套件或實現 EJB 框架所需的某些專門類和介面的類。

POJO 名稱用於強調給定物件是一個普通的 Java 物件,而不是一個特殊物件,尤其是不是一個 Enterprise JavaBean。

簡單的 POJO 示例

根據上面提到的幾條規則,我們可以定義一個 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;
   }
}
廣告