l JPA04:>
Ø @?%!
N+167
Ø '!(#,$%
Ø "*$/%-#&*$
Ø Entity)%+38
;21/=A
l JPA04:<5
.9
⇒ Spring Data JDBC
. 7 . .,. . ,,
Slide 8
Slide 8 text
8
1. Spring Data JDBC
2.
3.
4.
. . .,. . ,,
Slide 9
Slide 9 text
1
. ,
Slide 10
Slide 10 text
0 , , AB
l Spring Data, 02=
RDB!#('1"-12
Ø 20185106 1.0.0 GA22'
Ø Spring Data JPARepository
JPAD
GE8F
Ø %4.3 $4(.*
JPA?9> :@
- DDD2/&*2+)4BC;
opinionated1"-12JdbcTemplate
A
7<
01 1 0 . 01 .
Slide 11
Slide 11 text
1 A
l Spring Data JDBC ≠ Spring Data JPA
Ø !"-+.&,
Ø #POJOOK
l Spring Data JDBC ≠ Spring JDBC
Ø JdbcTemplate)*/(
Ø One-To-Many
l Spring Data JDBC ≠ Spring Data JDBC Extension
Ø %$
0
JDBC Extention'
1 , . ., 1 . . .
Slide 12
Slide 12 text
B 2 - - D C
n Getting Started
• Spring Boot 2.1.1.RELEASE
• Spring Data JDBC 1.0.4.RELEASE
2 A 1 ,1 2 2 1 1 1
. . .
0 0 1 0/ 4. 0
1/ 2 - - . 1/
<. 1 <. 1
. . .
4 >4
Slide 13
Slide 13 text
D 3 E
n Getting Started
B 3 C @ . 3B , 1 3 A 1
C ; ; AA B
1
B )
B B AB
B B ; AB
BB A BB
,( ( )( ; E
B E E
CB B
AB + /))
; AB + /))
B A ,
Slide 14
Slide 14 text
J B > 4D4 ,
n Getting Started
SRSL
, B D B AE CD > < , D << B DC B C B
.) . < 1 C D B D > C
,BE 1 C D B . < > (
;
. " ( ,
< 1 C D B C4 <
. < 1 C D B ;4 4
n Spring Data JDBC5>
JdbcTemplate4
.')
Ø Repository7<JdbcTemplate"&%
!,$"(-'*2#" /381$'"
@
n JdbcTemplateMyBatis6?=:
Ø XML+098
Repository;
AJdbcTemplateL C
1 , 2 , . .. , 7
Slide 18
Slide 18 text
AC
n
l JPA8G).29A
Ø @Entity<>
Ø =$- 2,@Id
Ø
Spring Data JPA4H
Ø ?@D&3'+1%(9E
Ø ?@D&3'+1%(756;:
C
*-#2+&3'+1%(75@PersistenceConstructor
C
Ø setter<>"3) ) !/0(.2
FB
18 , 2 , . 8 .. ,
Slide 19
Slide 19 text
C e
n Ti
@ 2 1 A , 9 . .,1 @ 2 1 . . .
; , , @..
. /
. / ) / ( .
. / ) ( .
; , , .. / ) / ( . ) ( .
. ; .= .. ; / ( . ( .
. .. ) / ( . ) ( .
/ ( . / ( .
( . ( .
; , .. 2 1
. ; .= .. / ( . ( .
. .
oa Ch 2 I
dfC hI
c i lI
E L i g m
2 a Ch j 2 1. np
@..
Slide 20
Slide 20 text
AC E
n L L
Ø CrudRepository extends Repository
Ø CrudRepository
CRUD
0 , <. .,0 0 . . .
.. .
.> . < . ..
.. . 2
Slide 21
Slide 21 text
C A
n
Ø CrudRepository
2, 2 1 . 2, 2 2
save(T entity) T
findById(ID id) Optional
existsById(ID id) boolean
findAll() Iterable
findAllById(Iterable ids) Iterable
count() long
deleteById(ID id) void
delete(T entity) void
Slide 22
Slide 22 text
N OQ RT
n WS
Ø @Query P L N F E
* EL = M ) F H C A =L * . : )AA = H H :
<@ EA L E H L
> ( @ <;> ; B ) < ;B " ; C
(2 L . * " , EA L H C H
> ) < ;B B > , > , > ,
EA L E H L @
Slide 23
Slide 23 text
L N T
n S R
Ø E LJ L
A C E I ( C BF E 2 .E ( C E C C
< , >A A E C F E >
. E >A ) , C E 3> . < EC C E 3>
,;; >A A E C F E > >A
>A > E >A A E C F E >
>,< , / , , < / ,< / ,<
NC
>A A E C F E > >A ;3 3
< , >A A E C
< /; / ; <
>A A E C F E >
>A A E C ;3 3
>A A E C F E > ;3 3
Slide 24
Slide 24 text
A C
n 1.0.4.RELEASE 17
1. '!,% (PagingAndSortingRepository)
Ø + /58
2. )#$&:+.2063=
Spring Data JPAfindByLastName
)#$&:+.206
3. D-4
4. 9;@=*" (%JPA@Embeddable
Ø converterA?C@=
2, 4 2 4 . 4 2, 4 2 2
Slide 25
Slide 25 text
. ,
Slide 26
Slide 26 text
n Spring Data JDBC '!*"
Ø One-To-One, One-To-Many
Ø Many-To-One, Many-To-Many
n Spring JDBC) MyBatis)#$&(
Ø Spring JDBC)
+%
3 , 3 26 , . .. 3 , 3 3
Slide 27
Slide 27 text
A C
n Spring Data JDBCDDD*)#'*($,
FI ;
l (Aggregate)
- nD",%!%! P
- @60C.9 5
&$ N2
M<
- HE?-3O
- @60",%!%!-
81 BQ
@6+'K
l A A (Repository)
- @67=L:4/J >G
- @60",%!%!A@6+' BQ
3 , 3 2 , . .. 3 , 3 37
Slide 28
Slide 28 text
A
n One-To-Many
3 . 8 3 8 ( 23 3. 3 8, . 8 ,
3 ,
)
3 , , 8
)
)
)
C
Slide 29
Slide 29 text
ef cg
n One-To-Many
AIC;9 L C D 3 = 9I == C;9 D C D C
; / .== C D C C
; @. . )
; @. . . (. (.
; @. 2 C C, ;=) ; >D ( H D 2 )
; / = . , .= . (. (.
, .= (.
; @. , .= . (. (.
= &
= (. & (.
; . > ; ; I 2 C; 9 ; >
; >D C C, ;= ; I ; >
ij ga a
2 pn
g d lm ; >D
h TOPS o
C D C C <
Slide 30
Slide 30 text
A C
n One-To-Many
3 . 3 , , . 3 3 3 . , , ,
. / / == , ,
@ )
@ ;
@ ,
. / = / ( ; , /
( ; /
D
@ ( ; ,
= &
= ; & ;
= &
D
D
, , 0
Slide 31
Slide 31 text
C
n One-To-Many
PurchaseOrder
OrderDetail A
, 1 3 . , 3 3
5LI ;J 4I= I I= I . 5LI ;J 4I= I 3 ; 0; BD -
I= I ;==1 D " 2; ; -
I= I . I= I JB IO J; I= I -
I= I ;==1 D " SPT R IB -
I= I . I= I JB IO J; I= I -
5LI ;J 4I= I B=. " I= I0; BD . ( , (, ) ) "
B DJ.94I= I0 ;B B=. " L; B O. " B D.2; ; " 4I= I0 ;B B=. "
L; B O. " B D.SPT R IB :
T RS
n (1)
? D H ?AE CD 3 >?=? ? -D == DC C F
H = D D ) E ? ( (
D E AD D AD D =? )
H = D D ) E ? ( (
AD D = = I = ? D E AD D )
H = D D ) E ? - 3 .
? D = E C ?
H = D D ) E ? ,
D E AD D = AD D =? =
H = D D ) E ? ( (
AD D = = I = ? D E AD D = )
H = D D ) E ? ( (
AD D = = I = ? D E AD D )
WNM, 3O LI
- 3 , 3
Slide 34
Slide 34 text
L
n T R (2)
Q. PurchaseOrder deleteC
OrderDetail A
(4 , 4 . ., 34 4 (4 ) . . ;.
4 . . 4 4 . . . 4 .
Slide 35
Slide 35 text
RA
n (2)
Q. PurchaseOrder delete L
C OrderDetail L
A. OrderDetail T DeleteC L
( 5 , . ., 3 ( ) . . ;.
. .5 . . . .
? =
? =
? = ? =
Slide 36
Slide 36 text
n -
-
⇒ A
ID C L
3- , 3 6 , . .. 3- , 3 3
T
T
Slide 37
Slide 37 text
1. One-To-Many R2
> A 7 C H )3A> D C 3 =>;>7 > .C );; A 7 C A AE
AC< =C @
;/ . ( .
;/ ; /
;/ C ,< ;> ( < ;> = C (
. ..& // & // / // @
/ // .. / & //)/ / // /; .
; ;
; / /;;/
,< ;> R S L
ac T
AC< =C E
Slide 38
Slide 38 text
EL
1. One-To-Many 2
( C @ A @ , 8 C ( " @ 88 @
,. 8 . @ @ 8 C
( .) ) ) 8 C 3
. 8 C
( .)
.
;
( .)
;
;
) 8 C
) 8 C 3 . .
Slide 39
Slide 39 text
E C
1. One-To-Many 2
3 ., 3 9 3 3, 3 .,
3
/
/
;
3 A
3