zoukankan      html  css  js  c++  java
  • 二.Hibernate 提供的查询方式

    OID查询方式(o指的是object)

    通过get()和load()方法加载指定OID的对象

    save()添加 update()更新 delete()删除

    HQL查询方式(面向对象的查询语言)

    query的list()方法返回查询的集合

    属性查询

    投影查询(实体类中必须有对应的构造方法)

    select Emp(ename,pno) from Emp

    分页的实现

    query.setFristResult((pageindex-1)*pagesize);设置开始的记录数

    query.setFristResult(pagesize);设置每页最大记录数

    连接查询   》内连接(From Entity inner join Entity.property)

         》外连接(From Entity outer join Entity.property)

         》左外连接(From Entity left join Entity.property)

         》右外连接(From Entity right join Entity.property)

    实体更新和实体删除都是调用的executeUpdate()方法。

    通过query接口使用HQL语言进行查询

    QBC查询方式

    通过Criteria等接口和类进行查询;

    本地SQl查询方式

    使用原生SQL语言进行查询

    对象导航查询方式

    通过已经加载的对象,导航到其关联对象

    Hibernate检索策略

    立即检索:立即加载与当前对相关联风对象,需要执行对跳select语句

    延迟检索:不立即加载与当前对相关联的对象,在第一次访问关联对象时才加载在其信息

    迫切做外连接检索:通过做外连接加载与当前对象关联的对象。为立即加载检索策略,但

              在执行的select语句少,只执行1条select连接查询语句

    检索作用域》类级别:只作用于当前对象load()》关联级别:

    类级别检索只支持load()或get()。当需要按照OID方式查找时建议用类级别检索

    ——load和get方法的区别

    》记录不存在时的处理方式不同 get()返回Null,load抛出HibetnateException异常

    》load可以返回实体的代理类是咧,get永远都是直接实体类。或者说liad方法支持延迟加载配置Lazy="true",而get

    方法总是立即加载.

    2.对于HQL增,删,改 要进行事物的处理(Transaction)注意:打开的事物必须创建事物对象接收,操作后必须尽心事物的提交(commit)不然报空指针异常.

  • 相关阅读:
    UIView
    UISwitch
    UIButton
    label标签的属性
    sublime 生成网页头文件
    Xcode快捷键
    Bootstrap 模态对话框只加载一次 remote 数据的解决办法 转载
    用谷歌浏览器来当手机模拟器
    DDD:谈谈数据模型、领域模型、视图模型和命令模型
    MoQ(基于.net3.5,c#3.0的mock框架)简单介绍
  • 原文地址:https://www.cnblogs.com/wanghongjie/p/4820715.html
Copyright © 2011-2022 走看看