首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hibernate复习(4)-三大类查询总结

2012-10-07 
Hibernate温习(4)--三大类查询总结??Hibernate目前总共分为三大类查询:cretiria,hql,本地sql 【以下篇章搜

Hibernate温习(4)--三大类查询总结

??Hibernate目前总共分为三大类查询:cretiria,hql,本地sql 【以下篇章搜集于网络,感谢作者】

第一:关于cretiria的查询

?? 具有一个直观的、可扩展的条件查询API是Hibernate的特色。

15.1. 创建一个Criteria 实例
org.hibernate.Criteria接口表示特定持久类的一个查询。Session是 Criteria实例的工厂。

?
Hibernate提供了相当多的内置criterion类型(Restrictions 子类), 但是尤其有用的是可以允许你直接使用SQL。

?

?
15.3. 结果集排序
你可以使用org.hibernate.criterion.Order来为查询结果排序。


你可以选择把一个别名指派给一个投影,这样可以使投影值被约束或排序所引用。下面是两种不同的实现方式:

?

alias()和as()方法简便的将一个投影实例包装到另外一个 别名的Projection实例中。简而言之,当你添加一个投影到一个投影列表中时 你可以为它指定一个别名:

?
你也可以使用Property.forName()来表示投影:

?
15.8. 离线(detached)查询和子查询
DetachedCriteria类使你在一个session范围之外创建一个查询,并且可以使用任意的 Session来执行它。

?

9、DML风格的操作(尽量少用,因为和缓存不同步)

Java代码:

?

这个查询指定了:

SQL查询字符串

查询返回的实体

这里,结果集字段名被假设为与映射文件中指明的字段名相同。对于连接了多个表的查询,这就可能造成问题,因为可能在多个表中出现同样名字的字段。下面的方法就可以避免字段名重复的问题:

?

这个查询指定了:

SQL查询语句,它带一个占位符,可以让Hibernate使用字段的别名.

查询返回的实体,和它的SQL表的别名.

addEntity()方法将SQL表的别名和实体类联系起来,并且确定查询结果集的形态。

addJoin()方法可以被用于载入其他的实体和集合的关联.

?

原生的SQL查询可能返回一个简单的标量值或者一个标量和实体的结合体。

??

除此之外,你还可以在你的hbm文件中描述结果集映射信息,在查询中使用。

?

命名SQL查询
可以在映射文档中定义查询的名字,然后就可以象调用一个命名的HQL查询一样直接调用命名SQL查询.在这种情况下,我们不 需要调用addEntity()方法.

?

?

?


过奖,都是站在巨人的肩膀上

热点排行