etudiant
, mot de passe etudiant
Ceci est une ancienne révision du document !
Ce TP est à rendre pour le dimanche 06/10/2013 13/10/2013. Les modalités de rendu seront communiquées sous peu. Le TP est à réaliser en binômes.
<note warning>Sur les machines des salles TP, faire le TP sous Windows (les IDE sont mal installées sous linux)</note>
<note warning>Il faut ajouter la propriété suivante au fichier persistence.xml
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
</note>
<note tip>Une erreur du type
INFO: HHH000262: Table not found: Vin
indique que vous n'avez pas créé les tables dans la base postgresql à l'aide du script fourni.</note>
L'objectif de ce TP est de mettre en place un mapping Objet/Relationnel via l'API JPA.
Quelques liens:
javax.persistence
Maven est un utilitaire de compilation/exécution/test de projet Java qui sera utilisé dans le cadre des TP de l'UE. Configurer Maven comme indiqué dans l'aide.
Télécharger et décompresser le projet de base: mif18-2013-base.zip, ou mieux le cloner depuis la forge:
hg clone https://forge.univ-lyon1.fr/hg/inf1008m-2013-base mif18-2013-base
Un projet Maven possède deux répertoires de sources: src/main et src/test. Le premier contient les classes “métier” alors que le second ne contient que le code de test.
Dans Eclipse, il faut importer le projet en utilisant Import existing maven project
. Le projet peut être directement ou vert dans Netbeans.
<note warning>Le projet à utiliser est le projet orm-2013, disponible soit directement, soit le cas échéant dans les modules du projet ouvert</note>
Le fichier pom.xml
contient les dépendances sur les bibliothèques nécessaires au TP.
Le fichier src/main/resources/META-INF/persistence.xml
contient les informations pour mettre en place le cadre de persistance.
Le fichier orm-2013/initialisation-pg.sql
du projet embryonnaire permet de mettre en place le schéma relationnel avec quelques données dans la base PostgreSQL1).
javax.persistence
, afin d'établir les liens entre le modèle relationnel et votre modèle objet.
Le mapping relationnel objet peut être tester à travers le TestCase JUnit placé dans src/test/java/mif18/orm/MappingTest.java
.
Cette classe est exécutable directement comme test JUnit dans Eclipse ou Netbeans.
@EmbeddedId
, @Embbedable
. Voir également @ElementCollection
si les éléments de la collection ne sont pas des entités.hibernate.hbm2ddl.auto
de validate
à update
permet au framework de modifier le schéma relationnel. Cela peut être utile pour comprendre à quoi correspond le mapping en cours de développement, mais cela écrase le schéma de l'énoncé. A la fin du TP, le mapping doit fonctionner avec le schéma de fourni plus haut. En cas d'impossibilité, justifier les différences dans des commentaires appropriés dans les classes Java.