5
Remarque : le code précédent devrait être
inclus dans un bloc try –finally (les
close finaux dans le finally), et pourrait
contenir éventuellement des blocs catch
R. Grin JPA page 25
pour a
raper
es excep
ons
es
RuntimeException) lancées par les
méthodes de EntityManager
Ce bloc try –finally a été omis pour ne
pas alourdir le code
Contexte de persistance
La méthode persist(objet)de la classe
EntityManager rend persistant un objet
L’objet est ajouté à un contexte de persistance
R. Grin JPA page 26
Toute modification apportée à un objet du
contexte de persistance sera enregistrée dans
la base de données
L’ensemble des entités gérées par un GE
s’appelle un contexte de persistance
GE – contexte de persistance
Dans le cadre d’une application autonome, la
relation est simple : un GE possède un
contexte de persistance, qui n’appartient qu’à
lui et il le garde pendant toute son existence
R. Grin JPA page 27
orsque
e
es
g
r
par un serveur
d’applications, la relation est plus complexe ;
un contexte de persistance peut se propager
d’un GE à un autre et il peut être fermé
automatiquement à la fin de la transaction en
cours (voir support complémentaire)
Entités
R. Grin JPA page 28
Caractéristiques
Seules les entités peuvent être
nrenvoyées par une requête (Query)
npassées en paramètre d’une méthode d’un
EntityManager ou d’un Query
R. Grin JPA page 29
nle but d’une association
nréférencées dans une requête JPQL
Une classe entité peut utiliser d’autres classes
pour conserver des états persistants
(MappedSuperclass ou Embedded étudiées
plus loin)
Conditions pour les classes entités
Elle doit posséder un attribut qui représente la
clé primaire dans la BD (@Id)
Une classe entité doit avoir un constructeur
sans paramètre protected ou public
R. Grin JPA page 30
Aucune méthode ou champ persistant ne doit
être final
Si une instance peut être passée par valeur en
paramètre d’une méthode comme un objet
détaché, elle doit implémenter Serializable