Hibernate 之 hql 语句执行字段过滤查询
来源:互联网 发布:网络教育专业是什么 编辑:程序博客网 时间:2024/05/21 09:39
这里以 Annex(附件) 作为示例对象:
package com.mrchu.opus;import java.sql.Blob;/** * 附件类 * * @author 码农先生 * @version 1.0 * @date 2013-7-18 */public class Annex {private String axId;// 附件IDprivate String axName;// 附件名称private Blob axContent;// 附件内容private String axType;// 附件类型private String axUploader;// 附件上传者public String getAxId() {return axId;}public void setAxId(String axId) {this.axId = axId;}public String getAxName() {return axName;}public void setAxName(String axName) {this.axName = axName;}public Blob getAxContent() {return axContent;}public void setAxContent(Blob axContent) {this.axContent = axContent;}public String getAxType() {return axType;}public void setAxType(String axType) {this.axType = axType;}public String getAxUploader() {return axUploader;}public void setAxUploader(String axUploader) {this.axUploader = axUploader;}}
其中 axContent 属性作为附件内容属性,数据库中以二进制存储。
那么在查询 Annex 表时,往往我们会在 hql 语句中使用 from Annex 进行查询,这样查询的结果是,随着附件表中的记录渐渐增多,查询的速度会逐渐降低,最终导致前台页面执行分页操作时慢的要死。
这里只是以对象中特殊的 Blob 字段进行解释,实际开发中还有可能是别的大字段拖慢查询速度。
解决方法:
1、在Annex对象中添加构造方法
// 无参的构造方法public Annex(){super();}// 过滤 axContent(Blob字段)的构造方法public Annex(String axId、String axName、String axType、String axUploader){this.axId = axId;this.axName = axName;this.axType = axType;this.axUploader = axUploader;}
2、hql 语句中使用
select new Annex(axId, axName, axType, axUploader)from Annex
进行查询,这样就达到了大字段过滤的效果。实际开发中检验得知,过滤后的查询速度简直是秒杀数据库!
3.、那么,这样一来附件内容属性不就被抛弃了吗?如果想实现个附件下载的功能该怎么办呢?
解决方法:
1、还是添加构造方法
// 包含附件名称与附件内容的构造方法public Annex(String axName、Blob axContent){this.axName = axName;this.axContent = axContent;}
2、hql 语句中使用
select new Annex(axName, axContent)from Annex where axId = ?
进行查询,其中axName属性可作为附件下载时要显示的附件名称。
这样一来,就达到了hql 语句执行查询时字段过滤的效果。
- Hibernate 之 hql 语句执行字段过滤查询
- Hibernate之hql语句查询
- Hibernate查询技术之HQL语句
- hibernate查询语句--HQL
- hibernate查询语句--HQL
- hibernate查询语句--HQL
- Hibernate查询语句+HQL
- hibernate查询语句---HQL
- hibernate查询语句--HQL
- hibernate查询语句--HQL
- hibernate查询HQL语句
- hibernate--HQL查询语句
- Hibernate查询语句HQL
- hibernate之hql语句
- Hibernate之HQL查询
- Hibernate之HQL查询
- Hibernate之HQL查询
- Hibernate HQL查询语句总结
- 二分图匹配
- org.xml.sax.SAXParseException: Attribute "colum" must be declared for element type "result".
- Spring.net实战开发学习资料
- 提高你的Java代码质量吧:危险的边界
- 探讨
- Hibernate 之 hql 语句执行字段过滤查询
- Evernote语法高亮
- Linux设备驱动的class(类)的理解(以timed_output为基础)
- 没有分的悲哀……
- 2013/7/18
- android基础之UI设计与开发一textView大全
- js 如何获取class的元素
- PHP操作MongoDB 数据库总结记录
- unicode,ansi,utf-8,unicode big endian的故事