二.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)不然报空指针异常.

posted on 2015-09-18 23:41  Longevity  阅读(190)  评论(0编辑  收藏  举报