http://blog.csdn.net/crazy_kis/article/details/4157054
1.查询所有信息
Query q = em.createQuery("select u from Userinfo u");
List list =q.getResultList();
如果查询结果是多个,应该使用Query接口的getResultList方法,如果查询结果只有一个,可以使用Query接口的getSingleResult方法。
命名查询:
@NamedQuery(name = "findAllUser", query = "SELECT u FROM Userinfo u")
name表示该查询的名字,query是查询语句本身。命名查询可以写在实体类中,第一次课生成的实体类中就有多个命名查询。
对于命名查询可以使用EntityManager的createNamedQuery方法,要访问上面的查询可以使用下面的代码:
Query q = em.createNamedQuery("findAllUser");
List<Userinfo> list =q.getResultList();
createNamedQuery方法的参数命名查询的名字。
2.使用Query完成分页
分页显示就是每次只显示部分对象的信息。要显示哪一部分信息取决于从什么地方开始显示,显示到什么地方。Query接口可以控制要获取的记录,有两个方法来设置要获取的第一条记录和最后一条记录。两个方法的定义分别如下:
setMaxResults(int maxResult),参数是要查询的最大记录数。
setFirstResult(int startposition),参数是第一个要查询的记录的位置。
通过这两个属性完成分页显示。
注意:分页必须用apache-openjpa-1.0.2-binary.zip , 1.0.1不起作用是个Bug
3.条件查询
条件查询,需要在查询语句中使用变量,可以有两种方式:位置参数和名字参数。
位置参数
在位置参数中,使用“?”号加上参数的序号的方式表示参数。
例,根据用户名username查询用户。
SELECT u FROM Userinfo u where u.username = ?1
1表示第一个参数。
在位置参数中,可以使用多个参数,可以用不同的数字表示。同一个参数可以在查询中出现多次。
名字参数
在名字参数种,使用“:”号加上参数的名字的方式表示参数。
例,根据用户类型查询用户。
SELECT u FROM Userinfo u WHERE u.usertype = :usertype
“:”号后面的usertype就是参数的名字。
不管是位置参数还是名字参数都可以在命名查询中使用。
位置参数的赋值通过Query接口的相应方法完成,主要方法如下:
public Query setParameter(int position,Object value)
public Query setParameter(int position,Date value,TemporalType temporalType)
public Query setParameter(int position,Calendar value,TemporalType temporalType)
用于名字参数的赋值方法基本相同,只是第一个参数用于指定参数的名字。主要方法如下:
public Query setParameter(String name,Object value)
public Query setParameter(String name,Date value,TemporalType temporalType)
public Query setParameter(String name,Calendar value,TemporalType temporalType)
例1:使用前面介绍的根据用户名进行查询的语句。
Query q = em.createQuery("SELECT u FROM Userinfo u where u.username = ?1");
q = q.setParameter(1,username);
List<Userinfo> list =q.getResultList();
例2:使用前面介绍的根据用户类型进行查询的语句。
Query q = em.createQuery("SELECT u FROM Userinfo u WHERE u.usertype = :usertype");
q = q.setParameter("usertype",usertype);
List<Userinfo> list =q.getResultList();
分享到:
相关推荐
jpa查询详解 JPA(Java Persistence API)是一种 Java 持久层 API,用于处理 Java 对象和关系数据库之间的 Mapping。JPA 查询是 JPA 中的一种重要机制,用于从数据库中检索数据。在本文中,我们将详细介绍 JPA 查询...
标题“一个基于原生Java代码查询方式的JPA查询框架.zip”指的是一个使用Java Persistence API(JPA)的查询框架,该框架允许开发者使用原生的Java代码进行数据库查询,而不是依赖于HQL(Hibernate Query Language)...
**JPA查询语言详解** Java Persistence API(JPA)是一种标准的Java库,用于管理和持久化Java对象到关系数据库。JPA提供了强大的查询语言——Java Persistence Query Language(JPQL),它允许开发者通过面向对象的...
Jpa详细查询实例介绍,教你如何使用JPA,简单,分类实例。
本项目为基于Java平台的JPA查询封装设计源码,包含70个文件,主要由68个Java源文件、1个XML配置文件以及1个YAML配置文件组成,旨在提供高效的JPA查询封装方案。
springboot官网基础知识——JPA 查询方法
**JPA查询语言(JPQL)**是Java Persistence API中的一个核心特性,它提供了一种面向对象的查询语言,用于在Java应用程序中检索和操作持久化实体。JPQL类似于SQL,但设计的目标是与对象模型更紧密地集成,而不是直接...
JPA复杂查询加分页查询的快速开发 JPA(Java Persistence API)是 Java 的持久层 API,用于访问、持久化数据。使用 JPA,可以快速开发复杂查询,实现高效的数据访问。下面是 JPA 复杂查询加分页查询的快速开发知识...
jpa-spec 在Spring Data JPA之上做扩展,支持原生JPA2规范,极大的简化动态查询语法。特性兼容JPA2规范Equal/NotEqual/Like/In 支持多个参数, Equal/NotEqual 支持Null 值.构建器风格创建查询条件支持分页与构建器...
在本文中,我们将深入探讨Spring Data JPA中的JpaRepository查询功能。Spring Data JPA是Spring框架的一个模块,它简化了与Java Persistence API (JPA)的交互,提供了强大的数据访问抽象,使得数据库操作变得更加...
7. **Specifications**:对于复杂的查询,Spring Data JPA提供了Specifications接口,允许动态构建查询条件。这在处理复杂的查询逻辑时非常有用。 8. **Pagination and Sorting**:Spring Data JPA支持分页和排序...
通过定义自关联的实体类、配置JPA仓库以及编写适当的查询方法,可以轻松地实现对树形数据的CRUD操作。在实际应用中,还需考虑性能优化,如分页加载、懒加载等策略,以避免大量数据导致的效率问题。
JPA 提供了一种面向对象的方式来查询数据,使得开发者无需直接编写SQL,而是使用更直观、面向对象的查询语言,这被称为JPQL(Java Persistence Query Language)。在JPA中,查询语言的语法设计是为了与对象模型紧密...
9. **JPA Querydsl Support**:Spring Data JPA 还支持 Querydsl,这是一个强大的类型安全的查询语言,它可以进一步提高查询的可读性和可维护性。 10. **Elasticsearch 集成**:虽然不是 Spring Data JPA 的核心...
#Plugback JPA - 使用 Xtend 的类型安全 JPA 查询 Plugback JPA 是一个模块,允许您扩展 Java Persistence API 以使用类似 sql 的简洁和类型安全的语法查询您的数据库。 === ##你需要什么要使用Plugback JPA,你需要...
通过将公共通用操作写进父类简化代码,提高代码的复用。 面向接口 使用继承 泛型 引入JPA API查询 以及 元数据 提高代码的安全性.
本节我们将深入探讨"李勇JPA快速入门05_jpa中的查询"这一主题,这涵盖了JPA查询机制的基础和核心概念。 1. **基本查询语言:JPQL** Java Persistence Query Language(JPQL)是JPA提供的面向对象的查询语言,类似...
在这个场景中,我们将探讨如何使用JPA进行分页查询以及带有条件的分页查询。 首先,为了使用Spring Data JPA,我们需要在项目中引入相应的依赖。在Maven的pom.xml文件中,你需要添加`spring-boot-starter-data-jpa`...
JPA详解通常是对JPA的深入解析,包括实体(Entity)、持久化上下文(Persistence Context)、托管状态(Managed State)、懒加载(Lazy Loading)、级联操作(Cascading)、关系映射(Relationship Mapping)、查询...
**JPA查询语言(JPQL)** JPA提供了自己的查询语言——Java Persistence Query Language(JPQL),类似于SQL,但更面向对象。例如,以下JPQL查询返回所有用户: ```java String query = "SELECT u FROM User u"; ...