Hibernate常见问题

超、凢脫俗 2022-07-24 11:04 340阅读 0赞

问题1,hql条件查询报错

执行Query session.createQuery(hql) 报错误直接跳到finally

解决方案

加入

  1. <prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>

节点

加入之后再次报错

  1. org.hibernate.HibernateException: could not instantiate QueryTranslatorFactory: org.hibernate.hql.classic.ClassicQueryTransactionFactory

解决方案

修改成以下

  1. <property name="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</property>

参考链接

Hibernate 问题,在执行Query session.createQuery(hql) 报错误直接跳到finally - morning99的专栏 - 博客频道 - CSDN.NET

org.hibernate.HibernateException: could not instantiate QueryTranslatorFactory: org.hibernate.hql.classic.ClassicQueryTransactionFactory - Stack Overflow

hql条件查询

查询最后一条数据

  1. public RunTimePO getLast(String sin)
  2. {
  3. Session session = sessionFactory.openSession();
  4. //System.out.println("22222222222222");
  5. String hql="from RunTimePO where SIN=? order by id desc";
  6. //String hql="from RunTimePO where SIN=?";
  7. Query query = session.createQuery(hql);
  8. query.setString(0, sin);
  9. query.setMaxResults(1);
  10. //query.setInteger(0, 139);
  11. //int id=(Integer) query.uniqueResult();
  12. RunTimePO rp=(RunTimePO) query.uniqueResult();
  13. if(rp!=null)
  14. {
  15. System.out.println("id==="+rp.getId());
  16. }
  17. session.close();
  18. return rp;
  19. }

时间段查询

  1. public List<RunTimePO> getBetweenSeg(String sin,String startTime,String endTime)
  2. {
  3. Session session = sessionFactory.openSession();
  4. String hql="from RunTimePO as u where SIN=? and u.date between ? and ?";
  5. Query query = session.createQuery(hql);
  6. query.setString(0, sin);
  7. query.setString(1, startTime);
  8. query.setString(2, endTime);
  9. System.out.println(query.list().size());
  10. List<RunTimePO> runTimeList=query.list();
  11. return runTimeList;
  12. }

完成

发表评论

表情:
评论列表 (有 0 条评论,340人围观)

还没有评论,来说两句吧...

相关阅读