Comment faire un WebService De A à Z en passant par les JPA :p (Partie 2)

Hello,

Suite de ce tutoriel sur le webService restfull en java. Pour résumé ce qu’on à fait :

– On a créer le projet.

-On a mis en place Jersey.

-On a mis en place Hibernate.

Maintenant passons au code ! la parti la plus intéressante.

Etape 1 : Les entity

Pour ce tutoriel nous allons faire quelque chose de simple. Nous allons créer deux entités rien de méchant :

– auteur : qui sera composer d’un nom, prénom et un mail.

– citation : qui sera composé d’une citation, une note et parce qu’on est des fou une date de publication !


Pour plus de clarté nous allons divisé le code en sous parti ^^

Etape 1 :  Les annotations

nous allons commencer par les annotations pour permettre à hibernate et jersey de pouvoir renvoyer et gérer la persistence de nos entity.

package com.josselinchevalay.tutoriel.entity;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.xml.bind.annotation.XmlRootElement;

@Entity @XmlRootElement @SuppressWarnings(« serial »)
public class Auteur implements Serializable {

}

NB : les annotations commencerons toujours par un « @ ».  Comme on peut le voir il y a 3 annotations :

– @Entity : permet a hibernate de pouvoir persister l’objet  dans notre base de données.

– @XmlRootElement : permettra à jersey de convertir votre objet en extrait de code xml ou json.

-@SupressWarnings(« serial ») : permet de ne pas lever certaine erreur ou avertisement.

Attention : Ne pas oublier d’implémenter Serializable qui permettra de sérialisé ou de dé sérialisé l’objet.

Etape 2 : l’objet en lui même 

Comme vous pouvez le voir ci-dessus il n’y a pas de code. C’est un choix de ma part comme cela on ce concentre point par point sur l’important. Pour suivre nous allons donc voir les propriété de notre objet qui rappelons le seront d’un id ( important pour la base), un nom, prénom et une adresse mail.

@Id @GeneratedValue
private Long id;
@Column(length=25,nullable=false)
private String nom;
@Column(length=25,nullable=false)
private String prenom;
@Column(length=255,nullable=false,unique=true)
private String mail;

Le code ci-dessus nous permet de générer les attributs de nos objet pour alléger la lecture j’ai pas mis le reste. Donc voici l’essentiel mais n’oubliez pas de générer les Getter Setter car nos propriétés sont privé.

Commençons les hostilités par l’identifiant on peu y voir les annotations @Id et @GeneratedValue. @Id permet à hibernate de préciser que ce champ sera la clé primaire de votre table qui sera générer par votre entity. @GeneratedValue  spécifie que la valeur sera créer automatiquement ou plus précisément : elle sera auto-incrémenté.

Bon je vous propose d’expliquer en détail mail et ces annotations au lieu de tous les faire. l’annotations Column est facultatif si vous la mettez pas elle prendra des valeurs par défaut. Si vous la précisez c’est que vous voulez y mettre des contraintes particulières comme ici pour le mail. Dans ce projet on veux que le mail respect certaines contraintes qu’il est une taille inférieur ou égal a 255 caractères, qu’il doit pas être null et enfin doit être unique.

Voici ce que vous devriez obtenir.  

Etape 3 : créer l’entity Citation

Bon pour accélérer la cadence je met le code en screenshot ^^

Je vais revenir sur 2 points qui me paraisse bien ici :

– @Lob : permet de déclarer un champ texte d’une taille importante.

– @Temporal : permet de déclarer des champ de type datetime.

Etape 4 : Créer les jointures entre les objets 

Pour connaître les citations d’un auteur il va falloir mettre en place ce qu’on appelle les jointure pour cela. cela ce fait par l’ajout de propriétés et avec des annotations.

Dans Auteur:

@OneToMany(mappedBy= »auteur »)
private List<Citation> citations;

cela nous permet ainsi de pouvoir connaître les citations d’un auteur.

Dans Citation

@ManyToOne
@JoinColumn
private Auteur auteur;

quand nous connaissons la citation il peut être sympathique de connaître l’auteur.

Voilà vous avez vos entity prêt à servir !

Pour la prochaine étape je vais à nouveau refaire un page :p

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s