etudiant
, mot de passe etudiant
Ce TP est à rendre pour le dimanche 06/10/2013 13/10/2013.
On déposera une archive zip sur spiral:
Grp-Nom1-Numero1-Nom2-Numero2.zip
où:.zip
, .tar.gz
ou .7z
. Aucun autre format ne sera accepté.etudiants.properties
dont le contenu sera une mise à jour du suivant: groupe=X nom1=aaaaaa prenom1=bbbbbb numero1=1234567 nom2=cccccc prenom2=dddddd numero2=2345678
Le TP sera évalué sur le fonctionnement du mapping et sur la cohérence du modèle objet, mais surtout sur les commentaires qui viendront expliciter ces éléments. En particulier chaque occurrence de chaque annotation devra être commentée afin d'indiquer sa signification.
Le non respect des consignes de rendu entrainera une sanction sur la note du TP.
<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.