先用HQL,然后再Criteria,都没有什么大问题的。

解决方案 »

  1.   

    Hibernate实现了多种查询方式:对象化的查询封装模式criteria接口;Query接口(HQL),它涵盖了criteria大部分的功能,并提供了更加丰富灵活的特性;也可使用原生SQL或存储过程。
      

  2.   

    要看实际情况而定使用哪种查询方式,由于SQL语法本身就很乱,HQL有时候并不能涵盖所有的SQL特性,遇到复杂的查询情况时,只能使用原生SQL
      

  3.   

    关键是你要把hibernate应用到怎么样的项目中去。
      

  4.   

    没什么差距,只不过hql相对功能更强大一些,而criteria相对更OO一些,但是实际的功能实在有限,不过对于动态拼凑语句还是很实用的,如果你用一些比较简单的查询,用这个也可以。但是hibernate官方文档里还是推荐你使用hql,功能非常强,基本上所有的数据库操作都能实现,当然不包括特定数据库的特定方法。这两者的结果都是拼凑成类似的sql语句,你说会有什么差别么?当然,还有个好方法就是直接自己写sql语句,只不过这样的局限性比较大,容易和一个数据库绑死。这需要你自己权衡,推荐你使用hql。
      

  5.   

    也可以使用find, iterator等方法.其实hql,criteria内部还是调用那两个方法.
      

  6.   

    也可以使用find, iterator等方法.其实hql,criteria内部还是调用那两个方法.呵呵,没这个说法吧。hql和find方法有什么关系,find(hql),呵呵。