Vous êtes sur la page 1sur 24

Qualit et Tests unitaires Qualit et Tests unitaires

JPA (Java Persistence API) 3 - Associations, Hritage


Copyright Richard Grin Universit de Nice - Sophia Antipolis

Associations

Qualit et Tests unitaires Qualit et Tests unitaires

Gnralits
Une association peut tre uni ou bidirectionnelle Elle peut tre de type 1:1, 1:N, N:1 ou M:N Les associations doivent tre indiques par une annotation sur la proprit correspondante, pour que JPA puisse les grer correctement

Exemple
@ManyToOne public Departement getDepartement() { ... }

Qualit et Tests unitaires Qualit et Tests unitaires

Reprsentation des associations 1:N et M:N


Elles sont reprsentes par des collections ou maps qui doivent tre dclares par un des types interface suivants (de java.util) :
Collection Set List Map

Les variantes gnriques sont conseilles ; par exemple Collection<Employe>

Types utiliser
Le plus souvent Collection sera utilis Set peut tre utile pour liminer les doublons Les types concrets, tels que HashSet ou ArrayList, ne peuvent tre utiliss que pour des entits nouvelles ; ds que lentit est gre, les types interfaces doivent tre utiliss (ce qui permet au fournisseur de persistance dutiliser son propre type concret) List peut tre utilis pour conserver un ordre mais ncessite quelques prcautions

Qualit et Tests unitaires Qualit et Tests unitaires

Ordre dans les collections


Lordre dune liste n'est pas ncessairement prserv dans la base de donnes De plus, lordre en mmoire doit tre maintenu par le code (pas automatique) Tout ce quon peut esprer est de rcuprer les entits associes dans la liste avec un certain ordre lors de la rcupration dans la base, en utilisant lannotation @OrderBy

@OrderBy
Cette annotation indique dans quel ordre sont rcupres les entits associes Il faut prciser un ou plusieurs attributs qui dterminent l'ordre Chaque attribut peut tre prcis par ASC ou DESC (ordre ascendant ou descendant); ASC par dfaut Les diffrents attributs sont spars par une virgule Si aucun attribut n'est prcis, l'ordre sera celui de la cl primaire

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Hritage

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires Qualit et Tests unitaires

Nom de la table
Si on choisit la stratgie une seule table pour une arborescence dhritage la table a le nom de la table associe la classe racine de la hirarchie

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires

Qualit et Tests unitaires