String
(par exemple) fait partie des nouveautés de JPA 2.0. En JPA 1.0, on ne peut créer que des collections d'entités, à l'exclusion donc des types de base Java, des dates, des
Locale
, etc...
Pour ce faire, JPA 2.0 introduit une nouvelle annotation :
@ElementCollection
, qui permet d'enregistrer la collection annotée en base.
Voyons ceci sur un exemple.
Exemple 23. Collection de types de base, ordonnée
@Entity public class Bateau implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @ElementCollection @OrderColumn(name="order_names") private List<String> names ; // reste de la classe }
@OrderColumn
permet de conserver l'ordre dans lequel les éléments de la liste ont été enregistrés.
Examinons la structure créée en base par JPA.