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
}