Brook Preloader

HIBERNATE – Annotazioni di base

Le annotazioni di Hibernate di base

Hibernate utilizza annotazioni per mappare le classi Java alle tabelle del database. Ecco una lista delle annotazioni più utilizzate di Hibernate:

 

@Entity e @Table

Questa annotazione indica che una classe è un’entità e che dovrà essere mappata a una tabella nel database.

@Entity
public class Employee {
  // proprietà della classe
}

Nel caso in cui la tabella di riferimento ha un nome diverso dalla classe a cui si riferisce, possiamo utilizzare la annotazione @Table

@Entity
@Table(name = "EMPLOYEESLIST")
public class Employee {
  @Id
  private int id;
  
  // altre proprietà della classe
}

In questo esempio la tabella EMPLOYEESLIST viene mappata sulla classe Employee.

 

@Id

Questa annotazione indica la proprietà che rappresenta la chiave primaria della tabella.

@Entity
public class Employee {
  @Id
  private int id;
  // altre proprietà della classe
}

 

@GeneratedValue

Questa annotazione indica che il valore della proprietà annotata deve essere generato automaticamente dal database.

@Entity
public class Employee {
  @Id
  @GeneratedValue
  private int id;
  
  // altre proprietà della classe
}

Nel caso in cui il DBMS a cui ci colleghiamo è di tipo MySql il @GeneratedValue è connesso al campo AUTO_INCREMENT di tipo INTEGER.

 

@Column

Questa annotazione indica che una proprietà deve essere mappata a una colonna nella tabella.

@Entity
public class Employee {
 @Id
 private int id;
 
 @Column
 private String name;
 
 @Column
 private double salary;
 // altre proprietà della classe
}

Per specificare il nome della colonna diversa dalla proprietà di riferimento basta utilizzare @Column(name=”nome_colonna”) dove al posto di nome_colonna potete inserire il nome della colonna presente sul DB.

 

@Transient

Questa annotazione indica che una proprietà non deve essere mappata a una colonna nel database.

@Entity
public class Employee {
  @Id
  private int id;
  
  private String name;
  
  @Transient
  private int temp;
  
  // altre proprietà della classe
}