如题,用HQL在多条件查询的情况下,确实很繁琐,我想用QBC,但对QBC的分页查询不是很了解,它与HQL的分页查询有什么不同呢?用QBC有什么缺点?

解决方案 »

  1.   

    QBC的数据查询不支撑多表,更不能表连接,只是对单个对象查询,只要数据量上10W,效率还没HQL来的快.想用话可以去试试,我觉得没啥技术挑战.....楼主弱弱的问句:为啥要叫QBC啊?
      

  2.   

    QBC(Query By Criteria)查询方式是Hibernate提供的“更加面向对象”的一种检索方式。QBC在条件查询上比HQL查询更为灵活,而且支持运行时动态生成查询语句。 
      

  3.   

    QBC是完全面向对象的查询,HQL是半面向对象的查询,SQL是面向过程的查询。
    Session s = this.getSession();
    Criteria c = s.createCriteria(Person.class);
    c.add(Restrictions.eq("name","ShuaiGe"));
    c.setFirstResult(0).setMaxResults(10);
    List<Person> list = c.list();//得到的是名字为帅哥的第1条到第10条,共10条记录
    另说明:QBC是可以实现多表查询的。
    c = s.createCriteria(Person.class);
    c.add....加入Person的查询条件
    c.createCriteria(Order.class);
    c.add....加入Order的查询条件
    c.list();