今天学习别人写代码时发现这个疑问 有的这样写 SQLQuery lstQuery = this.getSession().createSQLQuery(sql.toString());
有的这样写 Query lstQuery = this.getSession().createQuery(hql.toString());
这两中写法有什么区别呢?
而且给这两个方法传的参数可以是sql形式也可以是Hql形式的吗?哪位大牛给小弟解释下啊,不胜感激!

解决方案 »

  1.   

    前者是sql,后者是hql.public interface QueryAn object-oriented representation of a Hibernate query. A Query instance is obtained by calling Session.createQuery(). public interface SQLQuery
    extends QueryRepresents a "native sql" query and allows the user to define certain aspects about its execution.从上面的定义可以看出SQLQuery继承自Query,因此理论上Query也可以使用本地sql。
      

  2.   

    第一个是本地化SQL,第二个是HQL。