/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package projetAppliWeb.gestionnaires;
import java.util.Collection;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.NonUniqueResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import projetAppliWeb.modeles.CategorieJeu;
import projetAppliWeb.modeles.Jeu;
import projetAppliWeb.modeles.TagJeu;
/**
*
* @author Zakaria
*/
@Stateless
public class GestionnaireJeu {
// Add business logic below. (Right-click in editor and choose
// "Insert Code > Add Business Method")
@PersistenceContext
private EntityManager em;
@EJB
GestionnaireCategorieJeu gestCategorie;
@EJB
GestionnaireTag gestTag;
public Collection<Jeu> getAllGames() {
// Exécution d'une requête équivalente à un select *
Query q = em.createQuery("select j from Jeu j");
return q.getResultList();
}
public Collection<Jeu> getAllGamesByCategorie(int categorie) {
CategorieJeu categorieJeu=gestCategorie.getCategorieById(categorie);
return categorieJeu.getListeJeux();
}
public Collection<Jeu> getGamesByTag(int tag) {
// Exécution d'une requête équivalente à un select *
TagJeu tagJeu=gestTag.getTagById(tag);
return tagJeu.getListeJeux();
}
public Jeu getGameByNom(String nom) {
// Exécution d'une requête équivalente à un select *
Query q = em.createQuery("select j from Jeu j where j.nom=:nom");
q.setParameter("nom", nom);
Jeu jeu;
try{
jeu=(Jeu)q.getSingleResult();
}catch(NoResultException e){
jeu=null;
}catch(NonUniqueResultException e){
jeu=null;
}
return jeu;
}
public Jeu getGameById(int id) {
Jeu jeu = em.find(Jeu.class, id);
return jeu;
}
public void deleteGameById(int id) {
Jeu jeu=getGameById(id);
em.remove(jeu);
}
public void deleteGame(Jeu jeu) {
em.remove(jeu);
}
public void updateGame(Jeu jeu) {
em.merge(jeu);
}
public void creerJeu(Jeu jeu){
if(getGameByNom(jeu.getNom())==null){
em.persist(jeu);
}
}
}