Hibernate中的createQuery与createSQLQuery区别是:
前者是hql语句进行查询,后者可以用sql语句查询。前者以hibernate生成的bean为对象装入list返回,后者则是以对象数组进行存储。
下面的案例辅助我们进行理解:
PO:User.class
Propertities:userid,username
DDL:session.createQuery(“form User u”).list()时生成的SQL:select userid,username from user;
当执行了session.createQuery("from User u").iterator()时生成的SQL:
select userid from tuser;
可见:看出list()一次将数据从数据库中读出直接填充到List中。
iterator()将数据的主键从数据库中读出,当循环这个Iterator时才添加执行:
select userid,username from user where userid=?;把数据读出。