Brook Preloader

HIBERNATE – Le annotazioni sui tipi di dato

Le annotazioni di Hibernate per i tipi di dato

Di seguito vengono annoverate le annotazioni secondarie ma utili per progetti che utilizzano diverse tipologie di dato:

 

@Lob

Questa annotazione viene utilizzata per mappare una proprietà di tipo java.sql.Blob o java.sql.Clob a una colonna di tipo BLOB o CLOB del database.

 @Entity
 public class Employee {
   @Id
   private int id;
   
   @Lob
   private byte[] picture;
   
   // altre proprietà della classe
 }

@Enumerated

Questa annotazione viene utilizzata per mappare una proprietà di tipo enumerazione (enum) a una colonna di tipo enumerazione nel database.

public enum Gender {
   MALE,
   FEMALE
 }
 ​
 @Entity
 public class Employee {
   @Id
   private int id;
   
   @Enumerated(EnumType.STRING)
   private Gender gender;
   
   // altre proprietà della classe
 }

@NaturalId

Questa annotazione viene utilizzata per identificare una proprietà che rappresenta un identificatore naturale dell’entità. Per identificatore naturale si intende una stringa che può essere identificata come UNIQUE all’interno del DBMS.

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

In questo caso diamo per scontato che non è possibile inserire più di un impiegato con lo stesso indirizzo email.

 

@ElementCollection

Questa annotazione viene utilizzata per mappare una proprietà di tipo Collection o Map come tabella separata nel database.

@Entity
 public class Employee {
   @Id
   private int id;
   
   @ElementCollection
   private Map<String, String> preferences;
   
   // altre proprietà della classe
 }