📜  Hibernate-持久类

📅  最后修改于: 2020-11-16 06:57:59             🧑  作者: Mango


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

对象或实例将存储在数据库表中的Java类在Hibernate中称为持久性类。如果这些类遵循一些简单规则(也称为普通旧Java对象(POJO)编程模型),则Hibernate效果最佳。

持久性类有以下主要规则,但是,这些规则都不是硬性要求-

  • 将要保留的所有Java类都需要一个默认的构造函数。

  • 所有类都应包含一个ID,以便轻松识别Hibernate和数据库中的对象。此属性映射到数据库表的主键列。

  • 应该保留的所有属性都应声明为私有,并具有以JavaBean样式定义的getXXXsetXXX方法。

  • Hibernate的一个主要功能是代理,它取决于持久性类是非最终类,还是声明所有公共方法的接口的实现。

  • 没有扩展或实现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;
   }
}