- 论坛徽章:
- 0
|
使用Hibernate有一段时间了,在其间对hibenrate查询的博大精深,深深震撼,可以说,hibernate的查询更符合面向对象的思想。对于初学者来说,可能感觉不是很习惯,毕竟经典的SQL查询方式伴随了我们那么的久,要想一下子适应可能还不适应。我这篇文章就对Hibernate常用的查询功能做下例示性的说明。让我们体验hibernate给我们带来的便利吧。
hibernate的查询分3种类型:
查询基于HQL(hibernate query )---QBH
查询基于Criteria ----QBC
查询基于Example---QBE
可能在某种特殊的情况下你选择原生的SQL查询
这3重形式覆盖了Hibernate的查询方式分类,他们各有优缺点,适合于不同的场合。比如说QBC更适合于条件查询,而QBH更适合于报表查询,QBE更适合于实例查询。
我们在说的时候,在不同的场合选择不同的查询方式,力求代码简单,易于构建。
对于Hibernate来说,最简单的查询莫过于
String HQL="from com.danan.Entity";
Query q=session.createQuery(HQL);
List result=q.list();
如你所见,就是如此的简单。当然你可以省略包前缀,使它更简洁,但是不要忘记这要保证别的包中不存在同名的持久化实体。
如果我们的Entity作为一个接口或者是其父类,那么你所查询出来的结果result是其子类或者实现其接口的持久化类。如果HQL为"from Object"那么查询的结果会包含所有被持久化声明的类的集合。
在前面我们看到,q引用的是createQuery的实体,那么这就声明了,参数String以HQL解析,如果你想用原生的SQL语句来进行查询,那么你可以引用createSQLQuery进行查询。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63956/showart_1089389.html |
|