HQL功能很强大,适合各种情况,但是动态条件查询构造起来很不方便;

Criteria 最适合动态查询,但不太适合统计查询,QBE还不够强大.只适合简单的查询;

Native-SQL可以实现特定的数据库的SQL,但是可移植性并不好。

如大部分查询都是动态条件查询,首先criteria,甚至使用Hibernate3提供的DetachedCriteria,构造好DetachedCriteria再进入Session执行查询。

但是涉及到统计查询和非常复杂的关联查询,Criteria就无能为力了。这种情况下选择使用HQL。最后如果涉及到使用某些数据库的特性的时候,就只有选择Native-SQL了

比较HQL、Criteria、Native-SQL这三者做查询的区别,以及应该如何进行选择?的更多相关文章

  1. Open SQL和Native SQL到底有什么本质的区别

    1.個人愚見:它們只是在实现的方式上,执行效率上不同,有的书上还说native sql存在一定风险 *& 20170521 171300 1.Open sql 是由创建数据库数据的ABAP命令 ...

  2. hibernate之HQL,Criteria与SQL

    HQL是针对封装好的对象. HQL :hibernate自己用的sql语句   -------HQL不能出现表中的任何内容 ---------不经常使用开发中 基本查询:String hql = &q ...

  3. 13.hibernate的native sql查询(转自xiaoluo501395377)

    hibernate的native sql查询   在我们的hibernate中,除了我们常用的HQL查询以外,还非常好的支持了原生的SQL查询,那么我们既然使用了hibernate,为什么不都采用hi ...

  4. Native SQL

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. jpa 联表查询 返回自定义对象 hql语法 原生sql 语法 1.11.9版本

    -----业务场景中经常涉及到联查,jpa的hql语法提供了内连接的查询方式(不支持复杂hql,比如left join ,right join).  上代码了 1.我们要联查房屋和房屋用户中间表,通过 ...

  6. Native SQL的使用

    OPEN SQL也不是万能的,存在一定的局限性.例如后台数据库为Oracle,对数据表中某个字段大小写是不固定的,若以这个字段为查旬条件,一般Oracle处理方法是使用Upper /Lower函数据将 ...

  7. 使用Hibernate+MySql+native SQL的BUG,以及解决办法

      本来是mssql+hibernate+native SQL 应用的很和谐 但是到了把mssql换成mysql,就出了错(同样的数据结构和数据). 查询方法是: String sql = " ...

  8. 数据库 --> SQL Server 和 Oracle 以及 MySQL 区别

    SQL Server 和 Oracle 以及 MySQL 区别 三者是目前市场占有率最高(依安装量而非收入)的关系数据库,而且很有代表性.排行第四的DB2(属IBM公司),与Oracle的定位和架构非 ...

  9. sql server 维护计划与作业关系区别

    sql server 维护计划与作业关系区别 对于二者的区别,你可以把维护计划看作是针对数据库进行维护的作业模板.自定义作业具有更广泛的用途,当然,也具有更复杂的操作.所以,如果 仅仅是做个数据库优化 ...

随机推荐

  1. Spring Boot run()方法剖析

    Spring Boot自动配置部分重点介绍了相关注解,关于main中调用的run方法并没有阐述过.run方法的作用是什么呢?只有注解没有main里的run方法Spring Boot工程就好比身体个方面 ...

  2. python.36的特性新定义初学者必看课程

    一.Python3.6新特性 1.新的格局化字符串办法 <p "="">新的格局化字符串办法,即在一般字符串前增加 f 或 F 前缀,其效果相似于str.fo ...

  3. [LeetCode]1365. 有多少小于当前数字的数字

    给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目. 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 ...

  4. [Python]Python入门笔记:语法基础

    Python笔记 一.基本语法 1.1 注释 文档注释: """contents""" 多行注释: ''' contents ''' 单行注 ...

  5. Seastar 教程(一)

    介绍 我们在本文档中介绍的Seastar是一个 C++ 库,用于在现代多核机器上编写高效的复杂服务器应用程序. 传统上,用于编写服务器应用程序的编程语言库和框架分为两个不同的阵营:专注于效率的阵营和专 ...

  6. Linux下/目录 、/home目录 、~目录的区别

    / :根目录 ,所有目录的最顶层目录,从任何用户执行该命令都会进入同一个目录,即所有用户共享.如下图: /home:/下面的home目录,名为家目录,但是很多人叫为用户列表目录,因为/home下是这台 ...

  7. 过分简单,Tabluea仪表板与Smartbi自助仪表盘制作流程分享

    上一章节介绍了如何接入数据到系统里面,并且对数据进行处理.那本章节与大家分享Smartbi及Tabluea是如何对数据进行仪表盘制作. ​   这就是Tabluea的工作簿界面,这也是Tabluea可 ...

  8. DT时代,优秀的BI工具应该具备哪些功能

    马云曾在一次演讲中说:"人类正从IT时代走向DT时代."那DT究竟是什么,和IT有什么不同呢?我们对IT非常熟悉,它是信息技术(InformationTechnology)的英文缩 ...

  9. 4款BI工具功能大对比,这款BI工具你不能错过!

    在这个信息爆炸式增长的时代,挖掘数据的潜在价值显得尤为重要.越来越多的人将目光聚集于商业智能领域--BI(Business Intelligence),通过数据分析软件对来自不同的数据源进行统一的处理 ...

  10. 关于python的turtle详解(转载)

    详解文章见turtle--海龟绘图--python3.10.2文档