hql查询的几种方式对比:
对比一:
- 通过实体id查询:
hql="FROM Employee WHERE department.id=?";
List<Employee> list = session.createQuery(hql).setParameter(0, 5).list();
- 通过实体查询:
hql="FROM Employee WHERE department=?";
List<Employee> list = session.createQuery(hql).setEntity(0, department).list();
对比结果:通过实体查询效率 > 通过实体id查询。
对比二:
- 查询实体全部属性:
hql="FROM Employee";
List<Employee> list = session.createQuery(hql).list();
- 通过new语法查询封装所需的实体中部分属性:
hql="SELECT new Employee(id,name) FROM Employee";
List<Employee> list = session.createQuery(hql).list();
对比结果:通过new封装所需部分属性查询效率 >> 实体全部属性查询。