[Spring] JPA: ๊ฐ’์˜ ํƒ์ƒ‰

[์›๋ณธ ๋งํฌ]

ํ…Œ์ด๋ธ”์€ ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.


์ „๋ถ€ ๊ฐ€์ ธ์˜ค๊ธฐ

findAll์€ ๊ธฐ๋ณธ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๋ฉ”์„œ๋“œ ์ค‘ ํ•˜๋‚˜๋กœ, ๊ทธ๋ƒฅ ๋”ฐ์งˆ ๊ฒƒ๋„ ์—†์ด ๋‹ค ๊ฐ€์ ธ์˜จ๋‹ค.
๋ฐ˜ํ™˜ํƒ€์ž…์€ List<์—”ํ‹ฐํ‹ฐํƒ€์ž…>์ด๋‹ค.



ํ•˜๋‚˜๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ

findById๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ๋˜๋Š” ๋ฉ”์„œ๋“œ๋‹ค.
๋ฐ˜ํ™˜ํƒ€์ž…์€ Optional<์—”ํ‹ฐํ‹ฐํƒ€์ž…>์ด๋‹ค.

์ž˜ ๊ฐ€์ ธ์˜ค๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด์™ธ์—๋„ id ์ด์™ธ์˜ ์†์„ฑ๊ฐ’์œผ๋กœ ํƒ์ƒ‰์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์ด๋ ‡๊ฒŒ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค.
findBy์†์„ฑ๋ช…(@Param("์†์„ฑ๋ช…") ๋งค๊ฐœ๋ณ€์ˆ˜)

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž˜ ๋ˆ๋‹ค.



์ •๋ ฌํ•ด์„œ ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๊ธฐ

๋ฉ”์„œ๋“œ๋ช…์— OrderBy์ ˆ์„ ๋ถ™์ด๋ฉด ๋œ๋‹ค.
findAllByOrderBy์ •๋ ฌ๊ธฐ์ค€
์ด๋ฒˆ์—” name์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ์„ ํ•˜๋„๋ก ํ–ˆ๋‹ค.


๊ทธ๋Ÿผ ๋ญ... name์œผ๋กœ ์ •๋ ฌํ•ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.



์˜ค๋ฆ„์ฐจ์ˆœ ๋ฐ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

OrderBy ๊ตฌ๋ฌธ ๋’ค์— Asc/Desc๋ฅผ ๋ถ™์ด๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ/๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์ค€๋‹ค. ๋””ํดํŠธ ์„ค์ •์ด Asc๋ผ์„œ Asc๋Š” ๊ผญ ๋ช…์‹œํ•ด์ค„ ํ•„์š”๋Š” ์—†๋‹ค.

์ด๋ฒˆ์—” Id๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•˜๋„๋ก ํ–ˆ๋‹ค.

๊ฑฐ๊พธ๋กœ ์ž˜ ๋ณด์—ฌ์ค€๋‹ค.



์ •๋ ฌํ•ด์„œ ๋ช‡๊ฐœ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.
findTop๊ฐœ์ˆ˜OrderBy์ •๋ ฌ์†์„ฑ



๊ฒ€์ƒ‰์กฐ๊ฑด๋ถ€์—ฌ: After, Before

๊ธฐ์กด์˜ SQL์—์„  where์™€ ์กฐ๊ฑด์‹์„ ํ†ตํ•ด ์กฐ๊ฑด์„ ๊ฑธ์—ˆ์ง€๋งŒ, JPA์—๋Š” ๊ณ ์œ ์˜ ์กฐ๊ฑด ๋‹จ์–ด๋“ค์ด ์กด์žฌํ•œ๋‹ค.
์ผ๋ก€๋กœ, After๋Š” ์ธ์ž๋กœ ๋ฐ›์€ ๊ฐ’์„ ์ดˆ๊ณผํ•œ๋‹ค๋Š” ์กฐ๊ฑด์„ ๋œปํ•œ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋Š” id๊ฐ€ ์ธ์ž๊ฐ’๋ณด๋‹ค ํฐ ๊ฒƒ๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค.

Before๋Š” ๋ฐ˜๋Œ€๋กœ, ๋ฏธ๋งŒ์ž„์„ ๋œปํ•œ๋‹ค.
id๊ฐ€ ์ธ์ž๋กœ ๋ฐ›์€ ๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฒƒ๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ์˜ˆ์‹œ๋‹ค.



์กฐ๊ฑด๊ฒฐํ•ฉ

And๋‚˜ Or ํ‚ค์›Œ๋“œ๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ๊ฐœ์˜ ์กฐ๊ฑด์„ ๋™์‹œ์— ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜๋Š” After์™€ Before๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•ด์„œ 3~6 ๊ตฌ๊ฐ„์„ ๋ฝ‘์•„๋‚ด๊ฒŒ ํ•œ ๊ฒƒ์ด๋‹ค.

์ด์™ธ์—๋„ ๋ฒ”์œ„ ์กฐ๊ฑด Between,
= Is, Equals > GreateThan, < LessThan, >= GreateThanEqual, <= LessThanEqual,
๋„ ์ฒดํฌ IsNull, IsNotNull, NotNull
๋ฌธ์ž์—ด ํŒจํ„ด Like,NotLike
ํฌํ•จ ์ฒดํฌ In, NotIn
๋“ฑ ๋‹ค์–‘ํ•œ ํ‚ค์›Œ๋“œ๋“ค์ด ์ œ๊ณต๋œ๋‹ค.


์ฐธ์กฐ
https://jobc.tistory.com/120
https://happygrammer.tistory.com/158
https://happygrammer.tistory.com/158