`

EJB3 JPA JPQL 语句 查询 使用 函数 分页 子查询(二)

    博客分类:
  • JPA
阅读更多

 

 

计算函数
HPQL定义的计算函数包括:
ABS 绝对值
SQRT 平方根
MOD 取余数
SIZE 取集合的数量
 
例:
//查询所有Order 的订单号及其订单项的数量
select o.orderid, size(o.orderItems) from Order as o group by o.orderid
//查询所有Order 的订单号及其总金额/10 的余数
select o.orderid, mod(o.amount, 10) from Order as o
 
 
子查询
子查询可以用于WHERE HAVING 条件语句中
例:
//查询年龄为26 岁的购买者的所有Order
select o from Order as o where o.ower in(select p from Person as p where p.age =26)
 
 
结果集分页
有些时候当执行一个查询会返回成千上万条记录,事实上我们只需要显示一部分数据。这时我们需要对结果集进行分页QueryAPI有两个接口方法可以解决这个问题:setMaxResults( ) setFirstResult( )
 
setMaxResults方法设置获取多少条记录
setFirstResult方法设置从结果集中的那个索引开始获取(假如返回的记录有3条,容器会自动为记录编上索引,索引从0开始,依次为012
 
例:
public List getPersonList(int max,int whichpage) {
try {
int index = (whichpage-1) * max;
Query query = em.createQuery("from Person p order by personid asc");
List list = query.setMaxResults(max).
setFirstResult(index).
getResultList();
em.clear();//分离内存中受EntityManager管理的实体bean,让VM进行垃圾回收
return list;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

 

 

 

 

分享到:
评论

相关推荐

    EJB的JPQL语法

    除了基础语法,JPQL还提供了更高级的功能,如子查询、集合操作和函数调用。例如,使用子查询找出薪水高于平均值的员工: ```sql SELECT e FROM Employee e WHERE e.salary > (SELECT AVG(e2.salary) FROM Employee ...

    介绍jpa和jpql

    JPA规范是EJB规范的一部分,因此它继承了EJB的技术,但它也可以独立于EJB组件使用。JPA的主要目的是为Java对象提供一种机制,使得它们可以被映射到关系型数据库中的表,同时提供了一个框架来管理这些对象的生命周期...

    EJB_JPQL语言详解

    6. **命名查询和动态查询**:预定义的JPQL查询语句,可以在运行时动态修改。 **ejbql.xtp.htm和ejbql.xtp_files内容推测:** 这些文件很可能是关于EJB和JPQL的教程或参考文档,可能包含了详细的JPQL语法解释、示例...

    EJB3实例教程

    JPQL可以进行复杂的查询,包括关联查询、聚合函数和子查询。 ### 8. 分布式计算支持 EJB3支持分布式计算,使得Bean可以在不同的服务器之间透明地调用,提供了高可用性和可伸缩性。 ### 9. 安全性 EJB3提供了内置...

    JPA学习源码(EJB实体Bean)

    - **jpa_05.rar**:可能讲解了JPQL的基础语法和高级查询技巧,包括子查询、聚合函数和命名查询。 - **jpa_06.rar**:可能涉及事务管理,JPA如何与JAVA EE的EJB(Enterprise JavaBeans)结合,以及声明式和编程式事务...

    <ejb-ql> 标记

    4. **灵活性**:EJB-QL支持多种复杂的查询,包括子查询、聚合函数、排序和分组等。 **EJB-QL的使用场景** 1. **Finder方法**:EJB组件可以定义Finder方法来执行特定的查询。这些方法由开发者自定义,并在EJB接口中...

    java jpa的驱动类包

    JPQL支持选择、投影、聚合、连接、子查询等复杂操作。 JPA的使用流程通常如下: 1. 创建`EntityManagerFactory`,配置相关的数据源和持久化单元。 2. 通过`EntityManagerFactory`获取`EntityManager`实例。 3. ...

    Apress.Pro.EJB.3.Java.Persistence.API.May.2006.zip

    6. **查询语言JPQL**:解释如何使用JPQL进行数据库查询,包括简单的选择、聚合、连接和子查询。 7. **实体监听器和事件**:探讨如何利用实体监听器(EntityListeners)和实体生命周期事件来实现特定的业务逻辑。 8...

    springboot + jpa

    7. **JPQL(Java Persistence Query Language)**:JPA提供了自己的查询语言JPQL,类似于SQL,但更面向对象,可以进行复杂的查询操作,如关联查询、分页查询、聚合函数等。 8. **事务管理**:SpringBoot默认使用`@...

    EJB3.0实例教程(PDF)

    5. **Java Persistence Query Language (JPQL)**:JPQL是JPA提供的面向对象的查询语言,类似于SQL,但用于查询对象而不是记录。它提供了对实体进行复杂查询的能力。 6. **实体的生命周期事件**:EJB3.0支持实体Bean...

    EJB 3.0

    11. **子查询** - 示例:`SELECT e FROM HelloWorld e WHERE e.id IN (SELECT f.id FROM HelloWorld f WHERE f.message = 'Hello')` 12. **原生SQL查询** - 使用**createNativeQuery()**方法执行原生SQL查询。 #...

    应用ejb3.0的一个小例子程序

    - **查询语言**:JPQL(Java Persistence Query Language)提供了面向对象的查询语法,类似SQL但更易于理解和使用。 通过这个小例子,开发者可以学习如何创建和部署EJB3.0应用程序,理解注解在企业级开发中的作用,...

    Spring JPA学习

    - 使用`Pageable`接口进行分页查询。 **2.6.2 JPA中调用存储过程** - 可以通过`EntityManager`的`createStoredProcedureQuery`方法调用存储过程。 **2.6.3 用例** - 例子:`entityManager.createQuery("SELECT e ...

    Apress.Beginning.EJB.3.2nd.Edition.May.2013.rar

    2. **实体Bean(Entity Beans)**:讲解如何使用JPA(Java Persistence API)来管理数据库对象,包括实体、持久化上下文、关系映射和查询语言(如JPQL)。 3. **会话Bean(Session Beans)**:涵盖无状态和有状态...

    java学习线路

    * SQL 基础:基础 SQL 语句、基本查询、多表查询、子查询、结果集的交、并、差运算 * JDBC 基础:常见数据库用法、JDBC 操作常见数据库、RowSet 与离线结果集、数据库连接池、事务管理、批处理 * JDBC 进阶:存储...

    JavaEE6规范中文版

    JPA 2.0增强了查询语言(JPQL)的功能,支持多表联合查询、子查询以及更复杂的更新和删除操作。此外,还引入了 Criteria API,为编写类型安全的查询提供了另一种选择。 七、RESTful Web服务 JSR311引入了对RESTful ...

    JAVAEE 7,手册chm格式的

    4. **JPA 2.1**:改进了对关系数据库的持久化管理,提供了更好的查询语言(JPQL)和元数据定义,支持了数组、集合的存储以及JSON的处理。 5. **JMS 2.0**:消息队列的标准,提供了更简洁的API,简化了消息生产者和...

Global site tag (gtag.js) - Google Analytics