在Hibernate中从MySQL获取多条记录

时间:2015-12-03 09:20:37

标签: hibernate hql

我正在尝试使用Hibernate Query Language从MySQL数据库中获取多条记录。在使用 query.find() query.list()几次尝试失败后,我发现问题出在我的查询中。但我不确定我的查询有什么问题。以下是获取记录的代码:

var linkG = link.enter()
  .append('g')
  .attr('class', 'link');

上述代码中唯一在我的控制台中打印的输出(使用@Override @Transactional public List<Paper> getPapersByCondition() { // Query q = getHibernateTemplate().getSessionFactory().openSession().createQuery("select paperID, paperTitle, abstractOfThePaper, status from Paper where reviewerID is null"); // List<Paper> list = null; // for(Object o : q.list()) { // System.out.println("$$$$$$$$$$$$$$$$$$$$$"); // list.add((Paper)o); // System.out.println(((Paper)o).getPaperTitle()); // } // System.out.println("#################"); // System.out.println(list.size()); //return list; List<Object> o = getHibernateTemplate().find("select paperID, paperTitle from Paper where reviewerID is null"); List<Paper> list = null; for(Object one : o) { System.out.println("$$$$$$$$$$$$$$$$$$$$$"); list.add((Paper)one); System.out.println(((Paper)one).getPaperTitle()); } System.out.println("#################"); System.out.println(list.size()); return list; } query.list()两种方法):

query.find()

运行上面的代码时,表中只有一条记录。 字段reviewerfeedback和reviewerid为空。

表格论文(映射到POJO类:论文)有以下字段:

paperid(int), papertitle(varchar), paperdatafile(blob), abstractofthepaper(varchar), status(varchar), reviwerfeedback(varchar), reviewerid(varchar)

请帮我解决上述问题。

提前致谢。

修改 我的POJO论文课程:

$$$$$$$$$$$$$$$$$$$$$

}

这是我在Chrome浏览器中执行相应的前端代码以显示提取的记录时出现的错误:         org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是java.lang.ClassCastException: [Ljava.lang.Object;无法转换为com.GDP.test.model.Paper

java.lang.ClassCastException:[Ljava.lang.Object;无法转换为com.GDP.test.model.Paper

1 个答案:

答案 0 :(得分:1)

中存在问题
list.add((Paper)one);

one不是Paper原因select paperID, paperTitle。它是一个数组[paperID, paperTitle]。 你需要做这样的事情

List<Paper> papers = (List<Paper>)getHibernateTemplate().find("from Paper where reviewerID is null");