Advanced JPA Topics - cvut.cz · 30/11/2016 · Advanced JPA Topics Miroslav Bla sko miroslav.blasko@fel.cvut.cz November 30, 2016 Miroslav Bla sko (miroslav.blasko@fel.cvut.cz) Advanced
Post on 23-Feb-2019
242 Views
Preview:
Transcript
Advanced JPA Topics
Miroslav Blasko
miroslav.blasko@fel.cvut.cz
November 30, 2016
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 1 / 69
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
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 2 / 69
Embedded Objects
Embedded Objects
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 3 / 69
Embedded Objects
Embedded Objects
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 4 / 69
Embedded Objects
Embedded Objects
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 5 / 69
Embedded Objects
Embedded Objects
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 6 / 69
Embedded Objects
Embedded Objects
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 7 / 69
Mapping to legacy databases
Mapping to legacy databases
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 8 / 69
Mapping to legacy databases
How to map legacy databases
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 9 / 69
Mapping to legacy databases
How to map legacy databases
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 10 / 69
Cascades
Cascades
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 11 / 69
Cascades
Cascade-persist
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 12 / 69
Cascades
Persisting bidirectional relationship
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 13 / 69
Cascades
Cascade
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 14 / 69
Collection Mapping
Collection Mapping
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 15 / 69
Collection Mapping
Collection Mapping
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 16 / 69
Collection Mapping
Collection Mapping
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 17 / 69
Collection Mapping
Collection Mapping
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 18 / 69
Collection Mapping
Collection Mapping
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 19 / 69
Collection Mapping
Collection Mapping
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 20 / 69
Collection Mapping
Collection Mapping
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 21 / 69
Collection Mapping
Collection Mapping - Ordered List
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 22 / 69
Collection Mapping
Collection Mapping - Ordered List
Figure: Ordering by Entity or Element Attribute
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 23 / 69
Collection Mapping
Collection Mapping - Ordered List
Figure: Ordering by Entity or Element Attribute
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 24 / 69
Collection Mapping
Collection Mapping - Ordered List
Figure: Persistently ordered lists
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 25 / 69
Collection Mapping
Collection Mapping - Ordered List
Figure: Persistently ordered lists
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 26 / 69
Collection Mapping
Collection Mapping - Maps
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 27 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by basic type - key is String
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 28 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by basic type - key is an enumeration
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 29 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by basic type - 1:N relationship using a Map with String key
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 30 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by basic type - N:M relationship using a Map with String key
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 31 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by entity attribute
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 32 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by embeddable type
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 33 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by embeddable type
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 34 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by embeddable type
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 35 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by embeddable type
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 36 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by embeddable type
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 37 / 69
Collection Mapping
Collection Mapping - Maps
Figure: Keying by entity
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 38 / 69
Compound and Shared Keys
Compound and Shared Keys
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 39 / 69
Compound and Shared Keys
Compound primary keys
Figure: Id Class
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 40 / 69
Compound and Shared Keys
Compound primary keys
Figure: Embedded Id Class
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 41 / 69
Compound and Shared Keys
Compound primary keys
Figure: Embedded Id Class
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 42 / 69
Compound and Shared Keys
Shared Primary Key
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 43 / 69
Compound and Shared Keys
Shared Primary Key
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 44 / 69
Compound Join Columns
Compound Join Columns
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 45 / 69
Compound Join Columns
Compound Join Columns
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 46 / 69
Compound Join Columns
Compound Join Columns
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 47 / 69
Various Attributes and Access Types
Various Attributes and AccessTypes
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 48 / 69
Various Attributes and Access Types
Read-only mappings
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 49 / 69
Various Attributes and Access Types
Optionality
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 50 / 69
Various Attributes and Access Types
Access types - Field access
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 51 / 69
Various Attributes and Access Types
Access types - Property access
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 52 / 69
Various Attributes and Access Types
Access types - Mixed access
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 53 / 69
Various Attributes and Access Types
Access types - Mixed access
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 54 / 69
Queries
Queries
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 55 / 69
Queries
Queries
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 56 / 69
Queries
JPQL
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 57 / 69
Queries
JPQL - query parameters
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 58 / 69
Queries
JPQL - defining a query dynamically
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 59 / 69
Queries
JPQL - using parameters
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 60 / 69
Queries
JPQL - named queries
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 61 / 69
Queries
JPQL - named queries
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 62 / 69
Queries
JPQL - pagination
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 63 / 69
Queries
JPQL - bulk updates
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 64 / 69
Queries
Native (SQL) queries
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 65 / 69
Queries
Native (SQL) queries
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 66 / 69
Queries
Native (SQL) queries
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 67 / 69
Queries
The End
Thank You
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 68 / 69
Queries
Resources
JSR 338 Java Persistence 2.1 Final Releasehttp://jcp.org/aboutJava/communityprocess/final/jsr338/index.html
Miroslav Blasko (miroslav.blasko@fel.cvut.cz) Advanced JPA Topics November 30, 2016 69 / 69
top related