Java™ 持久性查询语言 (JPQL) 用于针对与存储那些实体时所使用的机制无关的持久实体,定义搜索。
因此,JPQL 是可移植的,并不局限于任何特定的数据存储器。
JPQL 是 Enterprise JavaBeans 查询语言 EJB QL 的扩展,旨在将 SQL 的语法及简单查询语义与面向对象的表达式语言的可表达性相结合。
使用 EntityManager 接口所公开的方法来创建查询实例。
JPQL 定义两种类型的查询:动态查询(在运行过程中创建)和指定查询。
指定查询用于在多次启动同一查询的上下文中使用。它们的主要益处包括改进了代码的可复用性、维护工作较小并且可能会提高性能,这是因为只对它们评估一次。
指定查询使用 @NamedQuery 注释进行定义。名称属性用于唯一地标识指定查询,而查询属性则定义该查询。