两者的区别:
Query createQuery ( String queryString)
创建一个查询字符串中给定的HQL 查询新的实例。
参数:HQL查询
返回值:Query查询
抛出异常:HibernateException
SQLQuery createSQLQuery ( String queryString)
创建一个新的查询字符串给定的SQL实例SQLQuery的。
参数:SQL查询
返回值:SQLQuery
抛出异常:HibernateException
简单来说,createQuery使用hql语句进行查询,以Hibernate生成的Bean为对象,并将对象装入List中返回。
createSQLQuery使用sql语句进行查询,是以对象数组形式返回。
.addScalar("XXXX",StandardBasicTypes.DATE)
.addScalar("XXXX",StandardBasicTypes.STRING)
.addScalar("XXXX",StandardBasicTypes.INTEGER)
.addScalar("XXXX",StandardBasicTypes.LONG)
.setInteger("XXXX", int)
.setDate("XXXX", date)
.setDouble("XXXX",double)
setInteger,setDate,setDouble是为sql语句中由程序输入的判断条件赋值。
Transformers.ALIAS_TO_ENTITY_MAP是将最终查出结果设置为Map格式。
2:
Query query = session.createSQLQuery(sql)
.addScalar("XXXX",StandardBasicTypes.DATE)
.addScalar("XXXX",StandardBasicTypes.STRING)
.addScalar("XXXX",StandardBasicTypes.INTEGER)
.addScalar("XXXX",StandardBasicTypes.LONG)
.setInteger("XXXX", int)
.setDate("XXXX", date)
.setDouble("XXXX",double)
.setResultTransformer(Transformers.aliasToBean(XXXX.class));
Transformers.aliasToBean(XXXX.class)是将最终查询的结果转化成自定义或者Hibernate生成的Bean实体类的对象。
XXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean。
Query createQuery ( String queryString)
创建一个查询字符串中给定的HQL 查询新的实例。
参数:HQL查询
返回值:Query查询
抛出异常:HibernateException
SQLQuery createSQLQuery ( String queryString)
创建一个新的查询字符串给定的SQL实例SQLQuery的。
参数:SQL查询
返回值:SQLQuery
抛出异常:HibernateException
简单来说,createQuery使用hql语句进行查询,以Hibernate生成的Bean为对象,并将对象装入List中返回。
createSQLQuery使用sql语句进行查询,是以对象数组形式返回。
createSQLQuery使用情况:
1:
SQLQuery query = session.createSQLQuery(sql).addScalar("XXXX",StandardBasicTypes.DATE)
.addScalar("XXXX",StandardBasicTypes.STRING)
.addScalar("XXXX",StandardBasicTypes.INTEGER)
.addScalar("XXXX",StandardBasicTypes.LONG)
.setInteger("XXXX", int)
.setDate("XXXX", date)
.setDouble("XXXX",double)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
setInteger,setDate,setDouble是为sql语句中由程序输入的判断条件赋值。
Transformers.ALIAS_TO_ENTITY_MAP是将最终查出结果设置为Map格式。
2:
Query query = session.createSQLQuery(sql)
.addScalar("XXXX",StandardBasicTypes.DATE)
.addScalar("XXXX",StandardBasicTypes.STRING)
.addScalar("XXXX",StandardBasicTypes.INTEGER)
.addScalar("XXXX",StandardBasicTypes.LONG)
.setInteger("XXXX", int)
.setDate("XXXX", date)
.setDouble("XXXX",double)
.setResultTransformer(Transformers.aliasToBean(XXXX.class));
Transformers.aliasToBean(XXXX.class)是将最终查询的结果转化成自定义或者Hibernate生成的Bean实体类的对象。
3:
Query query = session.createSQLQuery(sql).addEntity(XXXX.class);XXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean。