标准与JPQL或HQL
使用Criteria或HQL有什么优点和缺点? Criteria API是在Hibernate中表达查询的一种很好的面向对象的方式,但有时候Criteria Queries比HQL更难理解/构建。
您何时使用Criteria和何时使用HQL? 你更喜欢哪些用例? 或者这只是一个品味问题?
我大多更喜欢Criteria Queries查询动态查询。 例如,动态添加某些排序或者根据某些参数留下一些部分(例如限制)会更容易。
另一方面,我使用HQL进行静态和复杂查询,因为它更容易理解/读取HQL。 另外,我认为HQL有点强大,例如对于不同的连接类型。
HQL和criteriaQuery之间在性能上存在差异,每次使用criteriaQuery启动查询时,它都会为表名称创建一个新的别名,该名称不会反映在任何数据库的上次查询缓存中。 这导致编译生成的SQL的开销,需要更多的时间来执行。
关于获取策略[http://www.hibernate.org/315.html]
Criteria是一个面向对象的API,而HQL意味着字符串连接。 这意味着所有面向对象的好处都适用:
由于HQL非常像SQL(大多数开发人员已经非常了解),因此这些“不必记住”的参数不会带来太多的重量。 如果HQL更加不同,那么这将更加重要。
链接地址: http://www.djcxy.com/p/36971.html下一篇: SQL Exception while connecting to oracle 11g from web application using jdbc