-
Page 3
2. Génération des entités grâce à JPA
Créer une classe entité (New Entity Class) que vous nommerez « Hotel » représentant
les hôtels par leur identifiant (idHotel), leur nom (nom_Hotel), leur adresse (adresse), leur
code postal (code_postal), leur ville (ville), le nombre NbreEtoiles) et le prix (prix)
. choisir EclipseLink comme
Fournisseur de persistence3 (Persistence Provider). Vous sélectionnerez ensuite comme
Data Source la base de données que vous venez de créer. Vous nommerez le package
ENTITE.
Ajouter les attributs ainsi que les méthodes manquantes (constructeurs, les getters et les
setters) dans la classe Hotel.java.
Quelle est la différence entre une classe Java et une classe entité ?
3. Création, déploiement et test du service de recherche d’hôtels
Créer un service web REST à partir de la classe entité « Hotel ». Pour cela, vous allez
sélectionner New
créée et générer le service. Que remarquez-vous ? .
Déployer (clic droit sur le projetdeploy) et tester le web service Rest (clic droit sur le
projet Test Restful Web Services. Quel résultat obtenez-vous et pourquoi?
Insérer des données dans la table de votre base de données et vérifier que votre contexte
de persistence (fichier « persistence.xml ») est en mode create. Refaire le test des services
web. Sélectionner GET (application/xml) et cliquer sur Test. Quel résultat obtenez-vous et
pourquoi?
Tester les différentes méthodes HTTP :
- GET : pour récupérer tous les hôtels et rechercher les hôtels par leur id.
- POST : pour créer un nouvel hôtel
- PUT : pour modifier un hôtel
- DELETE : pour supprimer un hôtel
Créer deux méthodes : une méthode de recherche par ville et une
méthode de recherche par prix et tester le service. Pour cela vous allez suivre les
indications suivantes :
-
grâce au langage JPQL4. Une requête nommée est déclarée dans une annotation
@NamedQuery. Cette annotation prend deux attributs : name, qui porte le nom de la
requête, et query, qui porte la requête JPQL. Plusieurs annotations @NamedQuery
peuvent être regroupées dans une annotation @NamedQueries, qui prend un tableau de
3
4 http://docs.oracle.com/cd/E17904_01/apirefs.1111/e13946/ejb3_langref.html