文档章节

shop++ CriteriaQuery 数据库查询语句

a
 a41551
发布于 2015/09/06 16:48
字数 406
阅读 20
收藏 0

hibernate 的criteria 查询语句是一种更加面向对象的方式查询。

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); //创建一个entityManager创建一个CriteriaBuilder 实列CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(entityClass);//criteriaBuilder创建一个createQuery实列,CriteriaQuery被赋予泛型,泛型参数申明CriteriaQuery在执行时返回的结果的类型。

criteriaQuery.select(criteriaQuery.from(entityClass)); //在criteriaQuery上设置查询表达式

return findList(criteriaQuery, first, count, filters, orders);//返回结果集

 

 

hibernate 中的JPQL 语句
 
String jpql = "select count(*) from Agent agent where lower(agent.name) = lower(:name)";//创建JPQL 语句,(应当注意的是from后边的Agent 是实体Bean而不是数据表。)
 Long count = entityManager.createQuery(jpql, Long.class)//通过entityManager获取一个createQuery实列,第一个位置是JPQL 语句,第二个位置是反射对象 这个对象就是返回值的类型 .setFlushMode(FlushModeType.COMMIT).setParameter("name", name)//查询执行时刷新. 设置查询参数.getSingleResult();//返回单个结果

 

通过两种语句之间的比较可以加深深刻的理解CriteriaQuery 查询语句, 当然前提是必须能熟悉一种语言。在shop++程序中,在使用一般查询的时候还是建议用JPQL语句来实现,因为比如说实现实现一个简单的查询还要创建entityManager 然后再创建一个createQuery实列。。这样就无形中增加了代码,而且代码执行效率也会降低不少。当然如果是想做一个稍微复杂点的查询,比如动态查询,需要增加多个条件数量,排序等等的条件查询都是可以用CriteriaQuery查询语句的。

© 著作权归作者所有

a
粉丝 0
博文 4
码字总数 1905
作品 0
石家庄
私信 提问
JPA criteria 查询:类型安全与面向对象

序言 自工作以来,除了以前比较流量的hibernate,就是一直使用ORM 规范 JPA了.而这几天工作需要,研究了下JPA的标准查询,名为:JPA criteria查询.相比JPQL,其优势是类型安全,更加的面向对象. 使用...

Zhao-Qian
2013/05/26
0
20
SpringDataJpa的Specification查询

Spring Data JPA支持JPA2.0的Criteria查询,相应的接口是JpaSpecificationExecutor。Criteria 查询:是一种类型安全和更面向对象的查询 。 这个接口基本是围绕着Specification接口来定义的,...

随风所欲
2016/01/04
3.9K
0
深入浅出学Spring Data JPA

第一章:Spring Data JPA入门 Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算...

17099933344
2017/07/31
0
0
深入浅出学Spring Data JPA

第一章:Spring Data JPA入门 Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算...

John-HZ
2014/06/08
0
0
D语言(Dlang)ORM - entity 架构

前言 为了让Dlang像 Java / PHP / C# 一样具有非常好的数据库操作体验,我们了解了 PDO、JDBC、HIBERNATE、ADO.NET,最终发现大家的设计都不是很统一,只有 Java 最新的持久化标准 JPA 是真正...

冰力
2017/08/09
0
4

没有更多内容

加载失败,请刷新页面

加载更多

GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238

GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238 (Address already in use) 官方文档虽然有相同的问题,但是对我的问题没起作用…… 后面发现自己手贱...

wenzhizhong
昨天
2
0
REST接口

文章来源 https://zhuanlan.zhihu.com/p/28674721?group_id=886181549958119424 http://www.ruanyifeng.com/blog/2014/05/restful_api.html REST 对请求的约定 REST 用来规范应用如何在 HTTP......

Airship
昨天
3
0
Spring Cloud Config 统一配置中心

Spring Cloud Config 统一配置中心 一、统一配置中心 统一管理配置 通常,我们会使用配置文件来管理应用的配置。如一个 Spring Boot 的应用,可以将配置信息放在 application.yml 文件中,如...

非摩尔根
昨天
2
0
android ------ AAPT2 error: check logs for details解决方法

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录...

切切歆语
昨天
2
0
今天的学习

今天学到了<select></select>标签: <label for="unittype">Select unit type: </label><select id="unittype" name="unittype" autofocus > <option value="1"> Miner </option> ......

墨冥
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部