面试官:HQL vs SQL
答:HQL 查询语句是面向对象的, Hibernate 负责解析 HQL 查询语句, 然后根据对象-关系映射文件中的映射信息, 把 HQL 查询语句翻译成相应的 SQL 语句。HQL 查询语句中的主体是域模型中的类及类的属性。 SQL 查询语句是与关系数据库绑定在一起的。SQL 查询语句中的主体是数据库表及表的字段。
HQL 查询包括以下步骤:
获取Hibernate Session对象。
编写HQL语句 以HQL语句作为参数,
调用Session的createQuery方法创建查询对象。
如果HQL语句包含参数,则调用Query的setXxx方法为参数赋值。
调用Query对象的list()或uniqueResult()方法返回查询结果列表(持久化实体集)