举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > jpa范围查询 JPA 类型化查询示例

jpa范围查询 JPA 类型化查询示例

2023-03-14 21:20 Java教程

jpa范围查询 JPA 类型化查询示例

jpa范围查询

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关键字来进行多个不同值之间员工信息的

JPA 类型化查询示例

JPA教程 - JPA 类型化查询示例


以下代码创建了一个类型化的查询。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 类型化查询示例全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们