Hibernate - Classe Persistente

Todo o conceito do Hibernate é pegar os valores dos atributos da classe Java e persisti-los em uma tabela de banco de dados. Um documento de mapeamento ajuda o Hibernate a determinar como extrair os valores das classes e mapeá-los com a tabela e campos associados.

As classes Java cujos objetos ou instâncias serão armazenados nas tabelas do banco de dados são chamadas de classes persistentes no Hibernate. O Hibernate funciona melhor se essas classes seguirem algumas regras simples, também conhecidas comoPlain Old Java Object (POJO) modelo de programação.

Existem as seguintes regras principais de classes persistentes, no entanto, nenhuma dessas regras são requisitos rígidos -

  • Todas as classes Java que serão persistidas precisam de um construtor padrão.

  • Todas as classes devem conter um ID para permitir fácil identificação de seus objetos dentro do Hibernate e no banco de dados. Esta propriedade mapeia para a coluna de chave primária de uma tabela de banco de dados.

  • Todos os atributos que serão persistidos devem ser declarados privados e ter getXXX e setXXX métodos definidos no estilo JavaBean.

  • Um recurso central do Hibernate, proxies, depende da classe persistente ser não final ou da implementação de uma interface que declara todos os métodos públicos.

  • Todas as classes que não estendem ou implementam algumas classes e interfaces especializadas exigidas pela estrutura EJB.

O nome POJO é usado para enfatizar que um determinado objeto é um objeto Java comum, não um objeto especial e, em particular, não é um Enterprise JavaBean.

Exemplo de POJO simples

Com base nas poucas regras mencionadas acima, podemos definir uma classe POJO da seguinte forma -

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