返回顶部
首页 > 资讯 > 精选 >如何进行JPA中JPQL的命名查询
  • 101
分享到

如何进行JPA中JPQL的命名查询

2023-06-17 10:06:11 101人浏览 八月长安
摘要

本篇文章给大家分享的是有关如何进行JPA中JPQL的命名查询,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JPA的命名查询实际上就是给查询语句起个名字,执行查询的时候就是直接使

本篇文章给大家分享的是有关如何进行JPA中JPQL的命名查询,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

JPA的命名查询实际上就是给查询语句起个名字,执行查询的时候就是直接使用起的这个名字,避免重复写JPQL语句,使查询在代码中得到更多的重用。我不怎么喜欢使用命名查询,因为我不想把查询语句写在实体中,使得实体看起来变得复杂臃肿。

1、使用@NamedQuery注解在实体类中定义命名查询。

@NamedQuery(name="findAllUser",query="SELECT u FROM User u")

@NamedQuery中的属性name指定命名查询的名称,query属性指定命名查询的语句。

如果要定义多个命名查询,需要使用@NamedQueries。

@NamedQueries({
@NamedQuery(name="findAllUser",query="SELECT u FROM User u"),
@NamedQuery(name="findUserWithId",query="SELECT u FROM User u WHERE u.id = ?1"),
@NamedQuery(name="findUserWithName",query="SELECT u FROM User u WHERE u.name = :name")
})

2、定义好命名查询后,可以使用EntityManager的createNamedQuery方法传入命名查询的名称创建查询。

例如:createNamedQuery("findAllUser");

3、一个简单的例子。

简单的User实体:

package com.cndatacom.jpa.entity;     import javax.persistence.Column;  import javax.persistence.Entity;  import javax.persistence.GeneratedValue;  import javax.persistence.Id;  import javax.persistence.NamedQueries;  import javax.persistence.NamedQuery;  import javax.persistence.Table;     @Entity @Table(name="t_user")  @NamedQueries({          @NamedQuery(name="findAllUser",query="SELECT u FROM User u"),          @NamedQuery(name="findUserWithId",query="SELECT u FROM User u WHERE u.id = ?1"),          @NamedQuery(name="findUserWithName",query="SELECT u FROM User u WHERE u.name = :name")             })  public class User {                  @Id     @GeneratedValue     private Long id;                  @Column(name="name")      private String name;                  @Column(name="passWord")      private String password;         public Long getId() {          return id;      }         public void setId(Long id) {          this.id = id;      }         public String getName() {          return name;      }         public void setName(String name) {          this.name = name;      }         public String getPassword() {          return password;      }         public void setPassword(String password) {          this.password = password;      }         }

简单的测试

package com.cndatacom.jpa.test;     import java.util.List;     import javax.persistence.EntityManager;  import javax.persistence.EntityManagerFactory;  import javax.persistence.Persistence;  import javax.persistence.Query;        import org.junit.After;  import org.junit.Before;  import org.junit.Test;     import com.cndatacom.jpa.entity.User;     public class TestNamedQuery {             EntityManagerFactory emf = null;             @Before     public void before() {          //根据在persistence.xml中配置的persistence-unit name 创建EntityManagerFactory          emf = Persistence.createEntityManagerFactory("myJPA");      }             @After     public void after() {          //关闭EntityManagerFactory          if(null != emf) {              emf.close();          }      }             @Test     public void testNamedQuery1() {          EntityManager em = emf.createEntityManager();          List<User> users = em.createNamedQuery("findAllUser").getResultList();//根据User实体中定义的命名查询      }             @Test     public void testNamedQuery2() {          EntityManager em = emf.createEntityManager();          Query query =  em.createNamedQuery("findUserWithId");//根据User实体中定义的命名查询          query.setParameter(1, 2L);          List<User> users = query.getResultList();      }             @Test     public void testNamedQuery3() {          EntityManager em = emf.createEntityManager();          Query query =  em.createNamedQuery("findUserWithName");//根据User实体中定义的命名查询          query.setParameter("name", "李坏");          List<User> users = query.getResultList();      }  }

以上就是如何进行JPA中JPQL的命名查询,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 如何进行JPA中JPQL的命名查询

本文链接: https://lsjlt.com/news/288277.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何进行JPA中JPQL的命名查询
    本篇文章给大家分享的是有关如何进行JPA中JPQL的命名查询,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JPA的命名查询实际上就是给查询语句起个名字,执行查询的时候就是直接使...
    99+
    2023-06-17
  • 如何进行JPA中JPQL的简单查询
    如何进行JPA中JPQL的简单查询,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。JPQL:Java持久化查询语言,以面向对象的查询语法构造查询语句。JPA使用j...
    99+
    2023-06-17
  • Spring Data JPA使用JPQL与原生SQL进行查询的操作
    1、使用JPQL语句进行查询 JPQL语言(Java Persistence Query Language)是一种和SQL非常类似的中间性和对象化查询语言,它最终会被编译成针对不同底...
    99+
    2024-04-02
  • 详解spring-data-jpa中jpql的投影查询
    投影查询,就是仅仅检索表的部分字段。而不是粗暴的 SELECT * FROM...检索出所有列数据。例如检索用户余额信息的时候,就不需要检索用户的头像,创建日期等字段。节省了...
    99+
    2024-04-02
  • 如何使用JPA进行CriteriaQuery进行查询
    本篇内容介绍了“如何使用JPA进行CriteriaQuery进行查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用JPA Criteri...
    99+
    2023-06-21
  • 如何实现JPQL的关联查询
    小编给大家分享一下如何实现JPQL的关联查询,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从一关联到多的查询和从多关联到一的查询来简单说说关联查询。实体Team:...
    99+
    2023-06-17
  • 使用JPA进行CriteriaQuery进行查询的注意事项
    目录使用JPA CriteriaQuery查询的注意事项1.pojo类service层查询方法封装JPA动态查询(CriteriaQuery)EntityManager管理器,通过s...
    99+
    2024-04-02
  • spring data jpa怎么创建方法名进行简单查询
    本文小编为大家详细介绍“spring data jpa怎么创建方法名进行简单查询”,内容详细,步骤清晰,细节处理妥当,希望这篇“spring data jpa怎么创建方法名进行简单查询”文章能帮助大家...
    99+
    2023-06-29
  • 如何在Golang中进行API查询
    Golang是一种相对较新的编程语言,但已成为开发人员的首选。在开发应用程序时,特别是在构建可伸缩服务时,Golang的高性能和并发性使其成为理想的选择。Golang的API查询是一项基本任务,本文将介绍如何在Golang中进行API查询。...
    99+
    2023-05-14
  • golang中如何进行评论查询
    随着互联网的普及,评论已经成为了很多网站重要的一部分。评论的存在可以让网站更加互动,用户也能通过评论交流彼此的观点。然而,随着评论的增多,如何高效地查询和管理已有的评论也变得尤为重要。本文将会介绍 golang 中如何进行评论查询。在 Go...
    99+
    2023-05-14
  • SQLite中如何进行连接查询
    在SQLite中进行连接查询有两种方法:使用JOIN子句和使用子查询。 使用JOIN子句: SELECT column1...
    99+
    2024-04-09
    SQLite
  • 如何理解Spring Data JPA查询方式及方法名查询规则
    这篇文章给大家介绍如何理解Spring Data JPA查询方式及方法名查询规则,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Spring Data JPA查询方式及方法名查询规则Spring Da...
    99+
    2023-06-21
  • 如何用LINQ进行查询
    本篇内容介绍了“如何用LINQ进行查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!LINQ to XML 提供使用 .NET 语言集成查询...
    99+
    2023-06-17
  • Pandas中如何对DataFrame列名进行重命名
    目录1.重命名Pandas DataFrame Column(列)2.在创建Dataframe时指定列名3.※使用 list 设置全部列名※总结Pandas是一个用于数据分析和操作的...
    99+
    2023-05-14
    pandas dataframe列重命名 python dataframe重命名 pandas dataframe修改列名
  • 如何在PostgreSQL中进行连接查询
    在PostgreSQL中进行连接查询可以使用JOIN子句来实现。JOIN子句允许将两个或多个表中的数据进行关联,以便查询数据。以下是...
    99+
    2024-04-09
    PostgreSQL
  • Spring DATA JPA中findAll如何进行OrderBy
    这篇文章主要介绍Spring DATA JPA中findAll如何进行OrderBy,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Spring DATA JPA 中findAll 进行OrderBy需要在 repos...
    99+
    2023-06-25
  • 如何进行mysql多表查询
    这期内容当中小编将会给大家带来有关如何进行mysql多表查询,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、准备数据库init.sql文件内容如下:SET N...
    99+
    2024-04-02
  • navicat如何进行全库查询
    小编给大家分享一下navicat如何进行全库查询,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Navicat是一套快速、可靠并价...
    99+
    2024-04-02
  • sql如何进行分组查询
    在SQL中,可以使用GROUP BY子句进行分组查询。语法如下:SELECT 列1, 列2, ... 列nFROM 表名GR...
    99+
    2023-09-15
    sql
  • MySQL如何进行分组查询
    MySQL中可以使用GROUP BY关键字进行分组查询。具体的语法为:SELECT 列名1, 列名2, ...FROM 表名...
    99+
    2023-10-10
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作