query.list()和query.iterate()区别

query.list()和query.iterate()区别

1.返回的类型不同:
list()返回List;iterate()返回Iterate。

2.查询策略不同:
list()直接发送sql语句,查询数据库;
iterate()发送sql语句,从数据库取出id,然后先从缓存中根据id查找对应信息,
有就返回结果,没有就根据id发送sql语句,查询数据库。

3.返回对象不同:
list()返回持久化实体类对象;
iterate()返回代理对象。

4.与缓存的关系不同:
list()只缓存,但不使用缓存(查询缓存除外);
iterate()会使用缓存。

你可能感兴趣的:(sql,Hibernate,数据库,缓存)