浏览 3171 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-09
在项目采用Hibernate关联,采用关联使用比较简单,在关联时添加条件,减轻迪卡儿集的从而提高效率!
项目写HQL时使用的其中一个实例如下: StringBuilder sb = new StringBuilder(); sb.append(" from Hotel h, RoomType r left join r.roomTypeSpecialPrices as rp with rp.from <= :checkInDate and rp.to >=:checkOutDate left join rp.roomTypeSpecialPriceInfos as ri with ri.dayNo=1,RoomTypePrice p ,RoomAmount a right join a.roomStatus as s, RoomTypePriceValidTime v\r\n");
备注:如果在不采用with方式,将with中条件添加到where之后相等于,将关联表信息查询交叉之后过滤。 采用with方式,相等于在查询交叉之前先过滤,减轻数据库负担。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-01-11
我以前都是把过滤条件都放到where之后,现在是知道with语句可提高数据库的负担。我现在是明白了,非常感谢。。。
|
|
返回顶楼 | |
发表时间:2010-01-13
最后修改:2010-01-13
再次支持你 希望有好的 你第一时间拿来分享
需注意的是 笛卡尔积 你写错了 下次小心哦 要不有可能有人会借题发挥 |
|
返回顶楼 | |
发表时间:2010-01-14
whaosoft 写道 再次支持你 希望有好的 你第一时间拿来分享
需注意的是 笛卡尔积 你写错了 下次小心哦 要不有可能有人会借题发挥 谢谢,本人打字没有注意,以后小心,^_^ |
|
返回顶楼 | |
发表时间:2010-02-08
不是吧,数据库没这么傻吧,他应该会也是先过滤再连接的啊,LZ能不能贴一段测试结果出来看看啊
|
|
返回顶楼 | |