【问题标题】:I want to implement a methode which allow me to prepare a test我想实现一种允许我准备测试的方法
【发布时间】:2016-04-24 17:37:51
【问题描述】:

所以我想实现一个允许我自动准备测试的方法 测试是一组问题,必须自动准备测试 所以问题会以随机方式从数据库中显示出来。

我知道sql query是这样的:

SELECT q FROM Question ORDER BY RAND() LIMIT ...;

这个包涉及 Class Test 提供的所有服务

package tn.esen.services.gestion.test;

@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();

【问题讨论】:

    标签: java jpa jakarta-ee


    【解决方案1】:

    解决方案
    假设您的问题表有一个问题实体,获取非常简单,只需从 RANDOM 问题表中的问题列表中获取任何 (number_of_questions)。

    public List<Question> prepareRandomTest(int number_of_questions){ 
      String sql = "SELECT * FROM question ORDER BY RANDOM() LIMIT "+number_of_questions;
      SQLQuery query = session.createSQLQuery(sql);
      query.addEntity(Question.class);
      List<Question> results = (List<Question>)query.list();
      return result;
    }
    

    【讨论】:

      猜你喜欢
      • 2019-03-21
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多