...
Par défaut, les applications esup-blank et esup-example sont configurées avec les gestionnaires de base de données s'appuyant sur Hibernate.
Les gestionnaires de bases de données
Le choix du gestionnaire de base de données Hibernate doit se faire en fonction de la maîtrise qu'a le développeur de la base de données. Deux cas se présentent :
...
| Bloc de code |
|---|
<bean
id="databaseManager2"
class="[...].hibernate.BasicHibernateDatabaseManagerImpl" >
<property
name="sessionFactoryBeanName"
value="sessionFactory" />
</bean>
|
Les session factories (« usines à session »)
Les trois beans sessionFactory, createSessionFactory et updateSessionFactory (le premier seulement si l'on ne maîtrise pas la structure de la base de données) héritent tous du même bean abstrait abstractHibernateSessionfactory :
...
- L'accès normal à la base de données s'appuie sur le bean sessionFactory (accès web et accès batch),
- La création se fait en instanciant le bean createSessionFactory (via la tâche ant init-data),
- La mise à jour se fait en instanciant le bean updateSessionFactory (via la tâche ant upgrade).
Mapping avec la base de données
Les fichiers de mapping sont dans le répertoire /properties/dao/hibernate/mapping et portent, par convention, l'extension .hbm.xml.
...
<value>classpath:/properties/dao/hibernate/mapping/Population.hbm.xml</value>
Une fois ce travail effectué, vous pouvez directement lancer la target init-data du fichier build-devel.xml !
Utilisation de HQL
HQL est un langage d'interrogation de base de données de Hibernate. Il est orienté objet et a une forme proche du SQL mais travaille sur les objets Java définis dans vos fichiers de mapping et pas sur des noms de tables de votre base de données.
...
| exercice | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
Écrire la classe Entry. Ecrire le fichier de mapping correspondant et le référencer depuis dao.xml. Exécuter la tâche ant init-data et vérifier que la table correspondante a bien été créée dans la base de données.
|
Comment ça marche
Comme vu plus haut, les points d'entrée de esup-commons s'assurent du respect du modèle one-session-per-request.
...