我正在使用以下代码从db
获取数据public List<Quiz> getQuizes(String category, long level) {
LOGGER.info("category = " + category + " level = " + level);
EntityManager em = getEntityManager();
try{
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery();
Root e = cq.from(Quiz.class);
cq.where(cb.equal(e.get("category"), cb.parameter(String.class)), cb.equal(e.get("level"), cb.parameter(Integer.class)));
Query query = em.createQuery(cq);
query.setParameter(1, category);
query.setParameter(2, level);
List quizes = query.getResultList();
LOGGER.info("number of results found = " + quizes.size());
return quizes;
}finally{
em.close();
}
}
@Entity
public class Quiz {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long quizId;
private String question;
private String answer;
private String hint;
private String category;
private int level;
private String imageUrl;
private String status ;
private String optionA;
private String optionB;
private String optionC;
private String optionD;
private String wikiLink;
//setters , and getters
}
即使数据库中存在过滤条件数据,我也总是得到0条记录。为什么?