Créer une méthode qui permet de préparer un test de manière auto

Fermé
dalitobs Messages postés 3 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 25 avril 2016 - Modifié par KX le 24/04/2016 à 20:11
dalitobs Messages postés 3 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 25 avril 2016 - 24 avril 2016 à 20:44
Bonjour,

Bonjour je veux créer une méthode qui permet de préparer un test automatiquement:
un test se compose d'un ensemble de question je veux créer un test ou les question seront affiché de manière aléatoire (extraite de la base de donnée)
voici le code(la base de donnée est prête)
package tn.esen.services.gestion.test;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import tn.esen.entities.Candidat;
import tn.esen.entities.Resultat;
import tn.esen.entities.Test;

/**


* Session Bean implementation class GestionTest

*/
@Stateless
public class GestionTest implements GestionTestRemote, GestionTestLocal {
 @PersistenceContext
 private EntityManager entityManager;
    /**


* Default constructor. 

*/
    public GestionTest() {
        // TODO Auto-generated constructor stub
    }
 @Override
 public boolean addTest(Test test) {
  try {
   entityManager.persist(test);
   return true;
  } catch (Exception e) {
   System.err.println("Impossible de créer un Test");
  }  return false;
 }
 @Override
 public boolean updateTest(Test test) {
  try {
   entityManager.merge(test);
   return true;
  } catch (Exception e) {
   System.err.println("Impossible de mettre à jour un test");
  }  return false;
 }
 @Override
 public boolean deleteTest(Test test) {
  
  try {
   entityManager.remove(entityManager.merge(test));
   return true;
  } catch (Exception e) {
   System.err.println("Impossible de supprimer un test");
  }  return false;
 }
 @Override
 public List<Test> readAllTest() {
  String jpql = "select t from Test t ";
  Query query = entityManager.createQuery(jpql);
  return query.getResultList();  
 }
 @Override
 public Test findTestById(Integer id) {
  return (Test) entityManager.find(Test.class, id);
 }
 @Override
 public List<Test> findAllTestByCandidat(Candidat candidat) {
    Query query=entityManager.createQuery("select distinct t from Test t join t.resultats r where r.candidat=:cand");
    query.setParameter("cand", candidat);
    return query.getResultList();

A voir également:

1 réponse

KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 3 005
24 avril 2016 à 20:24
Bonjour,

Un System.err.println ça ne suffit pas pour corriger les erreurs, il faudrait que tu affiches e.printStackTrace ou mieux que tu utilises des logs pour conserver la cause de l'erreur et la corriger.

De plus, est-ce que ton EJB est vraiment Remote+Local ?
Si oui, il vaudrait mieux faire deux EJB différents l'un pour le local et le second pour le remote... on met rarement les deux dans le même.
Voir : Deciding on Remote or Local Access

Quant à ta question elle n'est pas claire. Que veux tu faire ? En quoi le code que tu nous montre est en rapport avec ta question ?
0
dalitobs Messages postés 3 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 25 avril 2016
24 avril 2016 à 20:44
la méthode sera évidemment insérer dans la classe DAO du test c'est pour cela j'ai copié le code de cette classe.
Bon je veux devéloppé une methode qui permet de préparer un test (qui est un ensemble de question) de maniére automatique c'est à dire les questions seront généré de maniére automatique.
la requéte:SELECT q FROM Question ORDER BY RAND() LIMIT
0