71
Advanced Topics in JPA Petr Kˇ remen [email protected] Winter Term 2017 Petr Kˇ remen ([email protected]) Advanced Topics in JPA Winter Term 2017 1 / 71

Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen [email protected] Winter Term 2017 Petr K remen ([email protected]) Advanced Topics in JPA Winter

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Advanced Topics in JPA

Petr Kremen

[email protected]

Winter Term 2017

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 1 / 71

Page 2: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Contents

1 Embedded Objects

2 Mapping to legacy databases

3 Cascades

4 Collection Mapping

5 Compound and Shared Keys

6 Compound Join Columns

7 Various Attributes and Access Types

8 Queries

9 Criteria API

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 2 / 71

Page 3: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Embedded Objects

Embedded Objects

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 3 / 71

Page 4: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Embedded Objects

Embedded Objects

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 4 / 71

Page 5: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Embedded Objects

Embedded Objects

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 5 / 71

Page 6: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Embedded Objects

Embedded Objects

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 6 / 71

Page 7: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Embedded Objects

Embedded Objects

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 7 / 71

Page 8: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Mapping to legacy databases

Mapping to legacy databases

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 8 / 71

Page 9: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Mapping to legacy databases

How to map legacy databases

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 9 / 71

Page 10: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Mapping to legacy databases

How to map legacy databases

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 10 / 71

Page 11: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Cascades

Cascades

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 11 / 71

Page 12: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Cascades

Cascade-persist

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 12 / 71

Page 13: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Cascades

Persisting bidirectional relationship

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 13 / 71

Page 14: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Cascades

Cascade

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 14 / 71

Page 15: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 15 / 71

Page 16: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 16 / 71

Page 17: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 17 / 71

Page 18: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 18 / 71

Page 19: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 19 / 71

Page 20: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 20 / 71

Page 21: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 21 / 71

Page 22: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Ordered List

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 22 / 71

Page 23: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Ordered List

Figure: Ordering by Entity or Element Attribute

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 23 / 71

Page 24: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Ordered List

Figure: Ordering by Entity or Element Attribute

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 24 / 71

Page 25: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Ordered List

Figure: Persistently ordered lists

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 25 / 71

Page 26: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Ordered List

Figure: Persistently ordered lists

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 26 / 71

Page 27: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 27 / 71

Page 28: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by basic type - key is String

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 28 / 71

Page 29: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by basic type - key is an enumeration

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 29 / 71

Page 30: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by basic type - 1:N relationship using a Map with String key

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 30 / 71

Page 31: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by basic type - N:M relationship using a Map with String key

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 31 / 71

Page 32: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by entity attribute

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 32 / 71

Page 33: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by embeddable type

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 33 / 71

Page 34: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by embeddable type

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 34 / 71

Page 35: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by embeddable type

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 35 / 71

Page 36: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by embeddable type

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 36 / 71

Page 37: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by embeddable type

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 37 / 71

Page 38: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Collection Mapping

Collection Mapping - Maps

Figure: Keying by entity

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 38 / 71

Page 39: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Compound and Shared Keys

Compound and Shared Keys

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 39 / 71

Page 40: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Compound and Shared Keys

Compound primary keys

Figure: Id Class

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 40 / 71

Page 41: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Compound and Shared Keys

Compound primary keys

Figure: Embedded Id Class

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 41 / 71

Page 42: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Compound and Shared Keys

Compound primary keys

Figure: Embedded Id Class

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 42 / 71

Page 43: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Compound and Shared Keys

Shared Primary Key

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 43 / 71

Page 44: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Compound and Shared Keys

Shared Primary Key

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 44 / 71

Page 45: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Compound Join Columns

Compound Join Columns

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 45 / 71

Page 46: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Compound Join Columns

Compound Join Columns

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 46 / 71

Page 47: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Compound Join Columns

Compound Join Columns

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 47 / 71

Page 48: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Various Attributes and Access Types

Various Attributes and AccessTypes

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 48 / 71

Page 49: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Various Attributes and Access Types

Read-only mappings

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 49 / 71

Page 50: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Various Attributes and Access Types

Optionality

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 50 / 71

Page 51: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Various Attributes and Access Types

Access types - Field access

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 51 / 71

Page 52: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Various Attributes and Access Types

Access types - Property access

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 52 / 71

Page 53: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Various Attributes and Access Types

Access types - Mixed access

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 53 / 71

Page 54: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Various Attributes and Access Types

Access types - Mixed access

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 54 / 71

Page 55: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

Queries

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 55 / 71

Page 56: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

Queries

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 56 / 71

Page 57: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

JPQL

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 57 / 71

Page 58: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

JPQL - query parameters

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 58 / 71

Page 59: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

JPQL - defining a query dynamically

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 59 / 71

Page 60: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

JPQL - using parameters

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 60 / 71

Page 61: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

JPQL - named queries

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 61 / 71

Page 62: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

JPQL - named queries

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 62 / 71

Page 63: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

JPQL - pagination

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 63 / 71

Page 64: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

JPQL - bulk updates

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 64 / 71

Page 65: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

Native (SQL) queries

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 65 / 71

Page 66: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

Native (SQL) queries

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 66 / 71

Page 67: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Queries

Native (SQL) queries

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 67 / 71

Page 68: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Criteria API

Criteria API

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 68 / 71

Page 69: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Criteria API

Criteria API

JPQL

SELECT e FROM Employee e WHERE e.surname=’Novak’

Criteria API

Metamodel m = em.getMetamodel();CriteriaBuilder cb =em.getCriteriaBuilder();

CriteriaQuery<Employee> cq =cb.createQuery(Employee.class);

EntityType<Employee> Employee_ =m.entity(Employee.class);

Root<Employee> r =cq.from(Employee_);

cq.where(r.get(Employee_.surname).in("Novak"))

em.createQuery(cq).getResultList();

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 69 / 71

Page 70: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Criteria API

The End

Thank You

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 70 / 71

Page 71: Advanced Topics in JPA - cvut.cz...Advanced Topics in JPA Petr K remen petr.kremen@fel.cvut.cz Winter Term 2017 Petr K remen (petr.kremen@fel.cvut.cz) Advanced Topics in JPA Winter

Criteria API

Resources

JSR 338 Java Persistence 2.1 Final Releasehttp://jcp.org/aboutJava/communityprocess/final/jsr338/index.html

Petr Kremen ([email protected]) Advanced Topics in JPA Winter Term 2017 71 / 71