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;
   }
}
广告