SlideShare a Scribd company logo
Professional Open Source™




           JPA QL




© JBoss, Inc. 2003, 2004.                    07/17/04   1
Query API
                                                        Professional Open Source™


  The EntityManager interface methods for creating query instances,
   the Query interface methods that define and execute the query, and
   JPQL are referred to as the query API.




© JBoss, Inc. 2003, 2004.                                                           2
Defining named queries
                                                            Professional Open Source™


  You must create a named (or static) query before you can use it. It is
   defined either in the entity using annotations, or in the XML file
   defining O/R mapping metadata.




© JBoss, Inc. 2003, 2004.                                                               3
Creating a query instance
                                                           Professional Open Source™


         The EntityManager interface provides several methods to
         create queries using either JPQL or native SQL statements.




© JBoss, Inc. 2003, 2004.                                                              4
Creating a named query instance
                                         Professional Open Source™




© JBoss, Inc. 2003, 2004.                                            5
Creating a dynamic query instance
                                           Professional Open Source™




© JBoss, Inc. 2003, 2004.                                              6
Setting parameters for a query
                                              Professional Open Source™


              Setting Positional Parameters




         Setting Named parameters




© JBoss, Inc. 2003, 2004.                                                 7
Retrieving a single entity
                                                              Professional Open Source™




         If your query retrieves multiple instances of Category entities
         with the same name, it will throw
         NonUniqueResultException. The persistence provider will
         throw NoResultException when your query does not
         retrieve any result.

         These exceptions will not roll back the active transactions.

         Retrieving an entity using getSingleResult does not require an
         active transaction.
         However, if no transactions are available, the retrieved entity
         will be detached after retrieval.
© JBoss, Inc. 2003, 2004.                                                                 8
Retrieving a collection of entities
                                                                Professional Open Source™




         If getResultList does not retrieve any results for a query, it
         returns an empty list. No exceptions are thrown.

         Retrieving a collection does not require an
         active transaction, and if one isn’t available, the retrieved
         entities will be detached after retrieval.




© JBoss, Inc. 2003, 2004.                                                                   9
Paginating through a result list
                                          Professional Open Source™




© JBoss, Inc. 2003, 2004.                                             10
Specifying query hints
                                                              Professional Open Source™


  A query hint is a tip that is used by the persistence
  provider while executing queries or retrieving entities.

  For example, a hint can be a directive to the persistence provider
   whether to use a cache while executing a query.




© JBoss, Inc. 2003, 2004.                                                                 11
Specifying Query Hints in a NamedQuery
                                                Professional Open Source™




© JBoss, Inc. 2003, 2004.                                                   12
Professional Open Source™




            Introduction to JPQL




© JBoss, Inc. 2003, 2004.                                      13
Professional Open Source™


  Hibernate provides HSQL, while JDO-compliant providers such as
   BEA’s Kodo support JDO QL to query entities.

  JPQL is an extension of EJB QL, the query language of EJB 2.




© JBoss, Inc. 2003, 2004.                                                            14
How is JPQL Different from SQL?
                                                          Professional Open Source™


  JPQL operates on classes and objects (entities) in the Java space.
   SQL operates on tables, columns, and rows in the database space.



  While JPQL and SQL look similar to us, they operate in two very
   different worlds.




© JBoss, Inc. 2003, 2004.                                                             15
Professional Open Source™


  The JPQL Query Parser or Processor Engine of a persistence
   provider, as shown in below figure, translates the JPQL query into
   native SQL for the database being used by the persistence provider.




© JBoss, Inc. 2003, 2004.                                                             16
Defining and using SELECT
                                   Professional Open Source™




© JBoss, Inc. 2003, 2004.                                      17
Defining UPDATE and DELETE
                                    Professional Open Source™




© JBoss, Inc. 2003, 2004.                                       18
Identifying the query domain: naming an entity
                                                        Professional Open Source™




© JBoss, Inc. 2003, 2004.                                                           19
What is a path expression?
                                                             Professional Open Source™


  Expressions such as c.categoryName and c.categoryId are known as
   path expressions

  A path expression is an identifier variable followed by the navigation
   operator (.), and a persistence or association field.

  An association field can contain either a single-value object or a
   collection. The association fields that represent one-to-many and
   many-to-many associations are collections of types, and such a path
   expression is a collection-value path expression.




         Here c.items is collection-value path expression

© JBoss, Inc. 2003, 2004.                                                                20
Professional Open Source™


  If the association is either many-to-one or one-to-one, then the
   association fields are of a specific object type, and those types are
   known as single value path expressions
  For example,
  c.items.user.firstName
  c.items.user.contactDetails.email




© JBoss, Inc. 2003, 2004.                                                                21
Conditional expressions and operators
                                                            Professional Open Source™


  A condition in the WHERE clause that filters results from a query is
   known as a conditional expression.

  Operators supported by JPQL :




© JBoss, Inc. 2003, 2004.                                                               22
Using a range with BETWEEN
                                    Professional Open Source™




© JBoss, Inc. 2003, 2004.                                       23
Using the IN operator
                               Professional Open Source™




© JBoss, Inc. 2003, 2004.                                  24
Using the LIKE operator
                                 Professional Open Source™




© JBoss, Inc. 2003, 2004.                                    25
Dealing with null values and empty collections
                                                        Professional Open Source™


  You can use the IS NULL or IS NOT NULL operator to check whether
   a single-value path expression contains null or not null values.

  For Example,
  WHERE c.parentCategory IS NOT NULL

  You cannot use the IS NULL expression to compare a path
   expression that is of type collection. You have to use
  IS [NOT] EMPTY

       For Example,
       SELECT c
       FROM Category c
       WHERE c.items IS EMPTY


© JBoss, Inc. 2003, 2004.                                                           26
Checking for the existence of an entity in a collection
                                                                 Professional Open Source™




© JBoss, Inc. 2003, 2004.                                                                    27
String functions
                            Professional Open Source™




© JBoss, Inc. 2003, 2004.                               28
Arithmetic functions
                              Professional Open Source™




© JBoss, Inc. 2003, 2004.                                 29
JPQL temporal functions
                                   Professional Open Source™




© JBoss, Inc. 2003, 2004.                                      30
Aggregate functions
                             Professional Open Source™




© JBoss, Inc. 2003, 2004.                                31
Grouping with GROUP BY and HAVING
                                           Professional Open Source™




© JBoss, Inc. 2003, 2004.                                              32
Ordering the query result
                                   Professional Open Source™




© JBoss, Inc. 2003, 2004.                                      33
Using subqueries
                            Professional Open Source™




© JBoss, Inc. 2003, 2004.                               34
Subqueries using ANY,ALL,SOME
                                       Professional Open Source™




© JBoss, Inc. 2003, 2004.                                          35
Theta-joins
                            Professional Open Source™




© JBoss, Inc. 2003, 2004.                               36
Inner Join
                                                         Professional Open Source™


  SELECT u
  FROM User u INNER JOIN u.Category c
  WHERE u.userId LIKE ?1

  The INNER clause is optional.

  Remember that when you use the JOIN operator by itself, an inner
   join is always performed




© JBoss, Inc. 2003, 2004.                                                            37
Outer joins
                            Professional Open Source™




© JBoss, Inc. 2003, 2004.                               38
Fetch joins
                            Professional Open Source™




© JBoss, Inc. 2003, 2004.                               39
Native SQL queries
                                           Professional Open Source™


  Using dynamic queries with native SQL




© JBoss, Inc. 2003, 2004.                                              40
Using a named native SQL query
                                        Professional Open Source™




© JBoss, Inc. 2003, 2004.                                           41

More Related Content

PPT
06 association of value types
PPT
PPT
PPT
Contexts and Dependency Injection for the JavaEE platform
PDF
Using Contexts & Dependency Injection in the Java EE 6 Platform
PPT
14 criteria api
PDF
Spark IT 2011 - Context & Dependency Injection in the Java EE 6 Ecosystem
PPT
Session 6 Tp6
06 association of value types
Contexts and Dependency Injection for the JavaEE platform
Using Contexts & Dependency Injection in the Java EE 6 Platform
14 criteria api
Spark IT 2011 - Context & Dependency Injection in the Java EE 6 Ecosystem
Session 6 Tp6

What's hot (19)

PDF
Enrichment lecture EE Technion (part B) on the subject of VHDL-2008 (April 2012)
PPT
01 persistence and domain modeling
DOCX
Ecom lec3 16_ej_bs
PPT
Jpa basics
PPT
15 jpa introduction
PPTX
Intershop bo
PPTX
Collections in-csharp
PPT
Session 7 Tp7
PDF
Ejb3 Presentation
PPTX
Enterprise Java Beans 3 - Business Logic
ODP
EJB 3.0 Walkthrough (2006)
PPTX
3.java database connectivity
PPT
PPTX
EJB3 Advance Features
PPTX
Java EE EJB Applications
PPSX
Entity beans in java
PPT
Session 3 Tp3
PDF
Jsf+ejb 50
PDF
Introduction to JPA and Hibernate including examples
Enrichment lecture EE Technion (part B) on the subject of VHDL-2008 (April 2012)
01 persistence and domain modeling
Ecom lec3 16_ej_bs
Jpa basics
15 jpa introduction
Intershop bo
Collections in-csharp
Session 7 Tp7
Ejb3 Presentation
Enterprise Java Beans 3 - Business Logic
EJB 3.0 Walkthrough (2006)
3.java database connectivity
EJB3 Advance Features
Java EE EJB Applications
Entity beans in java
Session 3 Tp3
Jsf+ejb 50
Introduction to JPA and Hibernate including examples
Ad

Viewers also liked (20)

ODP
Working with jpa
PDF
JPQL/ JPA Activity 2
 
PDF
JPQL/ JPA Activity 1
 
PDF
JPQL/ JPA Activity 3
 
PPT
Web Services Part 2
PPT
PPT
Patni Hibernate
ODP
How to bake reactive behavior into your Java EE applications
PDF
Quickstart for continuous integration
PDF
Introduction to developing modern web apps
PDF
FinelyMe-JustFit Intro
PDF
Continuous integration practices to improve the software quality
PPT
Web Services Part 1
PDF
Designing Scalable Applications
PPT
Spring Transaction
PDF
Continuous testing in agile projects 2015
PDF
Spring Data JPA
PPTX
JDBC - JPA - Spring Data
PDF
Introduction To Spring
PDF
Java Persistence API
Working with jpa
JPQL/ JPA Activity 2
 
JPQL/ JPA Activity 1
 
JPQL/ JPA Activity 3
 
Web Services Part 2
Patni Hibernate
How to bake reactive behavior into your Java EE applications
Quickstart for continuous integration
Introduction to developing modern web apps
FinelyMe-JustFit Intro
Continuous integration practices to improve the software quality
Web Services Part 1
Designing Scalable Applications
Spring Transaction
Continuous testing in agile projects 2015
Spring Data JPA
JDBC - JPA - Spring Data
Introduction To Spring
Java Persistence API
Ad

Similar to 15 jpaql (20)

PPT
12 global fetching strategies
PPT
11 transitive persistence and filters
PPT
04 dataaccess
PDF
A Spring Data’s Guide to Persistence
PPT
13 caching latest
PPT
12 hibernate int&cache
PPT
JBoss Analyst tour Sept 2003
PDF
PDF
Overview of Grails Object Relational Mapping (GORM)
PPT
09 transactions new1
PPT
Java Persistence API (JPA) - A Brief Overview
KEY
Appengine Nljug
PPT
En webinar jpa v2final
PDF
The vJUG talk about jOOQ: Get Back in Control of Your SQL
PPTX
java sql hibernate and springsDAKSHAYINI 3BR19EE026.pptx
PDF
Mapping Java Objects with JPA
PDF
Free EJB Tutorial | VirtualNuggets
PDF
Sangam 19 - PLSQL still the coolest
PDF
S313431 JPA 2.0 Overview
PDF
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
12 global fetching strategies
11 transitive persistence and filters
04 dataaccess
A Spring Data’s Guide to Persistence
13 caching latest
12 hibernate int&cache
JBoss Analyst tour Sept 2003
Overview of Grails Object Relational Mapping (GORM)
09 transactions new1
Java Persistence API (JPA) - A Brief Overview
Appengine Nljug
En webinar jpa v2final
The vJUG talk about jOOQ: Get Back in Control of Your SQL
java sql hibernate and springsDAKSHAYINI 3BR19EE026.pptx
Mapping Java Objects with JPA
Free EJB Tutorial | VirtualNuggets
Sangam 19 - PLSQL still the coolest
S313431 JPA 2.0 Overview
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...

Recently uploaded (20)

PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Hybrid model detection and classification of lung cancer
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
August Patch Tuesday
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
The various Industrial Revolutions .pptx
PDF
Getting Started with Data Integration: FME Form 101
PPTX
1. Introduction to Computer Programming.pptx
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Final SEM Unit 1 for mit wpu at pune .pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
Hybrid model detection and classification of lung cancer
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Assigned Numbers - 2025 - Bluetooth® Document
observCloud-Native Containerability and monitoring.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Module 1.ppt Iot fundamentals and Architecture
Programs and apps: productivity, graphics, security and other tools
August Patch Tuesday
Getting started with AI Agents and Multi-Agent Systems
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
The various Industrial Revolutions .pptx
Getting Started with Data Integration: FME Form 101
1. Introduction to Computer Programming.pptx
A comparative study of natural language inference in Swahili using monolingua...
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf

15 jpaql

  • 1. Professional Open Source™ JPA QL © JBoss, Inc. 2003, 2004. 07/17/04 1
  • 2. Query API Professional Open Source™  The EntityManager interface methods for creating query instances, the Query interface methods that define and execute the query, and JPQL are referred to as the query API. © JBoss, Inc. 2003, 2004. 2
  • 3. Defining named queries Professional Open Source™  You must create a named (or static) query before you can use it. It is defined either in the entity using annotations, or in the XML file defining O/R mapping metadata. © JBoss, Inc. 2003, 2004. 3
  • 4. Creating a query instance Professional Open Source™ The EntityManager interface provides several methods to create queries using either JPQL or native SQL statements. © JBoss, Inc. 2003, 2004. 4
  • 5. Creating a named query instance Professional Open Source™ © JBoss, Inc. 2003, 2004. 5
  • 6. Creating a dynamic query instance Professional Open Source™ © JBoss, Inc. 2003, 2004. 6
  • 7. Setting parameters for a query Professional Open Source™ Setting Positional Parameters Setting Named parameters © JBoss, Inc. 2003, 2004. 7
  • 8. Retrieving a single entity Professional Open Source™ If your query retrieves multiple instances of Category entities with the same name, it will throw NonUniqueResultException. The persistence provider will throw NoResultException when your query does not retrieve any result. These exceptions will not roll back the active transactions. Retrieving an entity using getSingleResult does not require an active transaction. However, if no transactions are available, the retrieved entity will be detached after retrieval. © JBoss, Inc. 2003, 2004. 8
  • 9. Retrieving a collection of entities Professional Open Source™ If getResultList does not retrieve any results for a query, it returns an empty list. No exceptions are thrown. Retrieving a collection does not require an active transaction, and if one isn’t available, the retrieved entities will be detached after retrieval. © JBoss, Inc. 2003, 2004. 9
  • 10. Paginating through a result list Professional Open Source™ © JBoss, Inc. 2003, 2004. 10
  • 11. Specifying query hints Professional Open Source™  A query hint is a tip that is used by the persistence  provider while executing queries or retrieving entities.  For example, a hint can be a directive to the persistence provider whether to use a cache while executing a query. © JBoss, Inc. 2003, 2004. 11
  • 12. Specifying Query Hints in a NamedQuery Professional Open Source™ © JBoss, Inc. 2003, 2004. 12
  • 13. Professional Open Source™ Introduction to JPQL © JBoss, Inc. 2003, 2004. 13
  • 14. Professional Open Source™  Hibernate provides HSQL, while JDO-compliant providers such as BEA’s Kodo support JDO QL to query entities.  JPQL is an extension of EJB QL, the query language of EJB 2. © JBoss, Inc. 2003, 2004. 14
  • 15. How is JPQL Different from SQL? Professional Open Source™  JPQL operates on classes and objects (entities) in the Java space. SQL operates on tables, columns, and rows in the database space.  While JPQL and SQL look similar to us, they operate in two very different worlds. © JBoss, Inc. 2003, 2004. 15
  • 16. Professional Open Source™  The JPQL Query Parser or Processor Engine of a persistence provider, as shown in below figure, translates the JPQL query into native SQL for the database being used by the persistence provider. © JBoss, Inc. 2003, 2004. 16
  • 17. Defining and using SELECT Professional Open Source™ © JBoss, Inc. 2003, 2004. 17
  • 18. Defining UPDATE and DELETE Professional Open Source™ © JBoss, Inc. 2003, 2004. 18
  • 19. Identifying the query domain: naming an entity Professional Open Source™ © JBoss, Inc. 2003, 2004. 19
  • 20. What is a path expression? Professional Open Source™  Expressions such as c.categoryName and c.categoryId are known as path expressions  A path expression is an identifier variable followed by the navigation operator (.), and a persistence or association field.  An association field can contain either a single-value object or a collection. The association fields that represent one-to-many and many-to-many associations are collections of types, and such a path expression is a collection-value path expression. Here c.items is collection-value path expression © JBoss, Inc. 2003, 2004. 20
  • 21. Professional Open Source™  If the association is either many-to-one or one-to-one, then the association fields are of a specific object type, and those types are known as single value path expressions  For example,  c.items.user.firstName  c.items.user.contactDetails.email © JBoss, Inc. 2003, 2004. 21
  • 22. Conditional expressions and operators Professional Open Source™  A condition in the WHERE clause that filters results from a query is known as a conditional expression.  Operators supported by JPQL : © JBoss, Inc. 2003, 2004. 22
  • 23. Using a range with BETWEEN Professional Open Source™ © JBoss, Inc. 2003, 2004. 23
  • 24. Using the IN operator Professional Open Source™ © JBoss, Inc. 2003, 2004. 24
  • 25. Using the LIKE operator Professional Open Source™ © JBoss, Inc. 2003, 2004. 25
  • 26. Dealing with null values and empty collections Professional Open Source™  You can use the IS NULL or IS NOT NULL operator to check whether a single-value path expression contains null or not null values.  For Example,  WHERE c.parentCategory IS NOT NULL  You cannot use the IS NULL expression to compare a path expression that is of type collection. You have to use  IS [NOT] EMPTY  For Example,  SELECT c  FROM Category c  WHERE c.items IS EMPTY © JBoss, Inc. 2003, 2004. 26
  • 27. Checking for the existence of an entity in a collection Professional Open Source™ © JBoss, Inc. 2003, 2004. 27
  • 28. String functions Professional Open Source™ © JBoss, Inc. 2003, 2004. 28
  • 29. Arithmetic functions Professional Open Source™ © JBoss, Inc. 2003, 2004. 29
  • 30. JPQL temporal functions Professional Open Source™ © JBoss, Inc. 2003, 2004. 30
  • 31. Aggregate functions Professional Open Source™ © JBoss, Inc. 2003, 2004. 31
  • 32. Grouping with GROUP BY and HAVING Professional Open Source™ © JBoss, Inc. 2003, 2004. 32
  • 33. Ordering the query result Professional Open Source™ © JBoss, Inc. 2003, 2004. 33
  • 34. Using subqueries Professional Open Source™ © JBoss, Inc. 2003, 2004. 34
  • 35. Subqueries using ANY,ALL,SOME Professional Open Source™ © JBoss, Inc. 2003, 2004. 35
  • 36. Theta-joins Professional Open Source™ © JBoss, Inc. 2003, 2004. 36
  • 37. Inner Join Professional Open Source™  SELECT u  FROM User u INNER JOIN u.Category c  WHERE u.userId LIKE ?1  The INNER clause is optional.  Remember that when you use the JOIN operator by itself, an inner join is always performed © JBoss, Inc. 2003, 2004. 37
  • 38. Outer joins Professional Open Source™ © JBoss, Inc. 2003, 2004. 38
  • 39. Fetch joins Professional Open Source™ © JBoss, Inc. 2003, 2004. 39
  • 40. Native SQL queries Professional Open Source™  Using dynamic queries with native SQL © JBoss, Inc. 2003, 2004. 40
  • 41. Using a named native SQL query Professional Open Source™ © JBoss, Inc. 2003, 2004. 41