hibernate学习之检索策略
2017-06-21 19:08
459 查看
1.hibernate检索测策略分为两种
(1)立即查询:根据id查询,调用get方法,一调用就发送sql语句查询数据库数据
Session session = SessionFactoryUtil.GetSession(); Customer c = session.get(Customer.class, "4028802d5cc56d3b015cc56d3dc50000"); System.out.println(c);
(2)延迟查询:根据ID查询,还有load方法,调用load方法不会马上发送sql语句查询数据库,只有得到对象里面的值的时候才会发送语句查询数据库
返回有id值,除了id值才会发送sql语句
Session session = SessionFactoryUtil.GetSession(); Customer c = session.load(Customer.class, "4028802d5cc56d3b015cc56d3dc50000"); System.out.println(c.getC_id()); System.out.println(c.getC_name());
2.延迟查询分为两类:
(1)类级别延迟:根据id查询返回实体类对象,调用load方法,就不会马上发送sql语句,只有需要某个值的时候才会发送sql语句
(2)关联级别延迟:查询出某个客户,再查询这个客户的所有联系人,查询联系人是否需要延迟,这个过程就是关联级别延迟
Session session = SessionFactoryUtil.GetSession(); Customer c = session.load(Customer.class, "4028802d5cc56d3b015cc56d3dc50000"); //在get这个集合时没有发送sql语句 Set<LinkedMan> lm = c.getLinkedMans(); //获取这个集合里面值才会发送sql语句 System.out.println(lm.size());
<set name="linkedMans" cascade="save-update,delete" lazy="false"> <!-- 一对多建表 hibernate机制:默认双向维护外键,在一和多那一方都需要配置外键 column属性值就是外键的名称 --> <key column="clid"></key> <!-- 客户所有的联系人,class里面写的联系人类的全路径 --> <one-to-many class="com.sq.entity.LinkedMan"/> </set>
减少发送的sql语句
相关文章推荐
- Hibernate深入学习(五):集合的检索策略
- Hibernate学习之检索策略(lazy,fetch,batch-size等)
- Hibernate学习笔记----检索策略
- Hibernate检索策略学习之--预先抓取
- hiebernate 学习之六(hibernate的检索策略)
- 【Hibernate学习笔记】Hibernate的检索策略
- Hibernate学习9—检索策略
- Hibernate检索策略学习之--立即加载
- [原创]java WEB学习笔记91:Hibernate学习之路-- -HQL 迫切左外连接,左外连接,迫切内连接,内连接,关联级别运行时的检索策略 比较。理论,在于理解
- Hibernate深入学习(四):类级别的检索策略
- Hibernate学习笔记:检索策略
- Hiberante学习笔记:检索策略
- Hibernate 学习笔记-1-3(Hibernate的基本映射以及几种主键生成策略的测试)
- Hibernate的检索策略
- 详细讲解在Hibernate中检索策略的应用
- 详细讲解在Hibernate中检索策略的应用
- Hibernate 检索策略
- Hibernate数据检索策略和.hbm.xml映射文件
- Hibernate的检索策略
- Hibernate中检索策略