JPA范围查询是JPA框架中的一种常用查询方式,它可以根据实体属性的范围来进行查询。它可以使用JPQL或者Criteria API来实现,其中JPQL是一种面向对象的SQL语言,而Criteria API则是一种基于对象的API,可以用来创建动态查询。
JPQL中的范围查询主要使用BETWEEN关键字,它可以根据两个值之间的范围来进行查询。例如:
SELECT e FROM Employee e WHERE e.salary BETWEEN 10000 AND 20000
上面的例子中,我们使用BETWEEN关键字来进行薪水在10000到20000之间的员工信息的查询。此外,JPQL还有一些其他的关键字可以用于范围查询:
SELECT e FROM Employee e WHERE e.salary >= 10000 AND e.salary <= 20000
上面的例子中,我们使用大于等于和小于等于运算符来进行薪水在10000到20000之间的员工信息的查询。此外,JPQL还有一个IN关键字可以用于多个值之间的跳跃式赋值。例如:
SELECT e FROM Employee e WHERE e.salary IN (10000, 15000, 20000)
上面的例子中,我们使用IN关键字来进行多个不同值之间员工信息的
以下代码创建了一个类型化的查询。TypedQuery可以有通用参数。
TypedQuery<Professor> query = em.createQuery("SELECT e FROM Employee e", Professor.class);
以下代码来自Professor.java。
package cn..common; import java.util.Date; import javax.persistence.Column; import javax.persistence.DiscriminatorColumn; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @Table(name="EMP") public class Professor { @Id private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String toString() { return "Professor id: " + getId() + " name: " + getName(); } }
下面的代码来自PersonDaoImpl.java。
package cn..common; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.TypedQuery; import org.springframework.transaction.annotation.Transactional; @Transactional public class PersonDaoImpl { public void test() { Professor emp = new Professor(); emp.setId(1); emp.setName("name"); em.persist(emp); TypedQuery<Professor> query = em.createQuery("SELECT e FROM Employee e", Professor.class); List<Professor> emps = query.getResultList(); } @PersistenceContext private EntityManager em; }下载 TypedQuery.zip
JPA教程 - JPA查询GroupBy Having例子以下代码显示了如何在JPQL中使用GROUP BY和HAVING子句。List l = em.createQuery(...
Lucene教程 -Lucene索引文件索引是识别文档并为搜索准备文档的过程。下表列出了索引过程中常用的类。类描述IndexWriter在索引过...
Java格式 -Java 打印样式格式 java.util.Formatter 类支持printf样式格式化。printf样式格式化是C编程语言的良好支持。以下代码...
Java正则表达式教程 -Java正则表达式匹配 Matcher 类对字符序列执行匹配通过解释在 Pattern 对象中定义的编译模式。 Pattern 类...
Java反射 -Java类反射我们可以使用Java反射来获取关于类的信息,例如作为其包名称,其访问修饰符等。要获得简单的类名,请使用 C...