Hibernate - Persistent Class

L'intero concetto di Hibernate consiste nel prendere i valori dagli attributi della classe Java e mantenerli in una tabella di database. Un documento di mappatura aiuta Hibernate a determinare come estrarre i valori dalle classi e mapparli con la tabella ei campi associati.

Le classi Java i cui oggetti o istanze verranno memorizzate nelle tabelle del database sono chiamate classi persistenti in Hibernate. Hibernate funziona meglio se queste classi seguono alcune semplici regole, note anche comePlain Old Java Object (POJO) modello di programmazione.

Ci sono le seguenti regole principali delle classi persistenti, tuttavia, nessuna di queste regole è un requisito fondamentale:

  • Tutte le classi Java che verranno mantenute necessitano di un costruttore predefinito.

  • Tutte le classi dovrebbero contenere un ID per consentire una facile identificazione dei tuoi oggetti all'interno di Hibernate e nel database. Questa proprietà è mappata alla colonna della chiave primaria di una tabella di database.

  • Tutti gli attributi che verranno mantenuti dovrebbero essere dichiarati privati ​​e avere getXXX e setXXX metodi definiti nello stile JavaBean.

  • Una caratteristica centrale di Hibernate, i proxy, dipende dal fatto che la classe persistente non sia finale o dall'implementazione di un'interfaccia che dichiari tutti i metodi pubblici.

  • Tutte le classi che non estendono o implementano alcune classi e interfacce specializzate richieste dal framework EJB.

Il nome POJO viene utilizzato per sottolineare che un dato oggetto è un normale oggetto Java, non un oggetto speciale e in particolare non un Enterprise JavaBean.

Semplice esempio di POJO

Sulla base delle poche regole sopra menzionate, possiamo definire una classe POJO come segue:

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