๐ Query Method
์กฐํ ๋ค์ด๋ฐ์ฟผ๋ฆฌ prefix
- findBy
- readBy
- getBy
- queryBy
- searchBy
- streamBy
โ๏ธ ๋ชจ๋ ๊ฐ์select์กฐํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
โ๏ธ ๊ฐ๋ ์ฑ์ ์ํด ์ ํฉํ ์ด๋ฆ์ ์ ํํ๋ฉด ๋จ. (find๊ถ์ฅ)
โ๏ธ ๋ค์ด๋ฐ ์ฟผ๋ฆฌ๋ ์ปดํ์ผ ์๋ฌ๋ฅผ ๋ฐ์์ํค์ง ์์
ex)findByByName- ์ปดํ์ผOK, ๋ฐํ์์๋ฌ (์ปดํ์ผ ์์ ์ ์๋ฌ๋ฅผ ๋ฐ๊ฒฌํ ์ ์๋ค.)
First / Top
ex1)
๋์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ 3๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์๋ธ๋ค.findUserFirst3ByAge(Integer age);
ex2)
๋์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ 3๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์๋ธ๋ค.findUserTop3ByAge(Integer age);
After / Before
- ๋ ์ง๋ผ๋ฆฌ ๋ถ๋ฑํธ ์ฐ์ฐ์ ์ํํ๋ค.
- ์ซ์์ ๊ฒฝ์ฐ์๋ After / Before ์ ์ฉ๊ฐ๋ฅ
ํ์ง๋ง ๊ฐ๋ ์ฑ์ ์ํด ๋ ์งํ๋์๋ง ์ฌ์ฉํ๋๋ก ํ๊ณ ์ซ์์ ๊ฒฝ์ฐ GreaterThan, LessThan ์ ์ฌ์ฉ ๊ถ์ฅ
ex)
์์ฑ์ผ์(CreatedAt)์ด ๋งค๊ฐ๋ณ์๋ก ๋ค์ด์ค๋ date๋ณด๋ค ์ดํ(after)์ธ row ์กฐํfindUserByCreatedAtAfter(LocalDateTime date);
์์ ์ผ์(UpdatedAt)์ด ๋งค๊ฐ๋ณ์๋ก ๋ค์ด์ค๋ date๋ณด๋ค ์ด์ (before)์ธ row ์กฐํ
findUserByUpdatedAtBefore(LocalDateTime date);
GreaterThan / LessThan / GreaterThanEqual
After, Before์ ๋์ผํ๊ฒ where์ ์์ ๋ถ๋ฑํธ์ฐ์ฐ์ ์ํ
โ๏ธ ์ด๋ฆ๋ง ๋ค๋ฅผ ๋ฟ์ด์ง๋ง ๊ฐ๋
์ฑ์ ์ํด ๋ ์ง์ ๊ฒฝ์ฐ After , Before๋ฅผ ์ฌ์ฉํ๊ณ ์ผ๋ฐ์ ์ธ ์์ ๋์์ ๊ฒฝ์ฐ GreaterThan ๋ฑ์ ์ฌ์ฉ ๊ถ์ฅ
ex)
age๋ณด๋ค ๋์ด๊ฐ ๋ง์ row๋ฅผ ์กฐํfindUserByAgeGreaterThan(int age);
Between
๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ๋ ๊ฐ ์ฌ์ด (๋ ์ง๋ ์ ์ฉ ๊ฐ๋ฅ)
start <= target <= end
ex)findUserByCreatedAtBetween(LocalDateTime start, LocalDateTime, end);findUserByAgeBetween(int start, int end);
In
SQL์ In์ฟผ๋ฆฌ์ ๋์ผํ๊ฒ ๋์
List๋ก ๋ฐ์ name ๋ชฉ๋ก๊ณผ ์ด๋ฆ์ด ๊ฐ์ User๋ฅผ ๋ชจ๋ ์กฐํ
ex)findUserByNameIn(List<String> names);
Like / StartingWith / EndingWith / Contains
ex)
name์ด ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ name์ผ๋ก ์์findUserByNameStartingWith(String name);
name์ด ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ name์ผ๋ก ๋findUserByNameEndingWith(String name);
name์ด ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ name์ ํฌํจfindUserByNameContains(String name);
ex) LikefindUserByNameLike(String name);
userRepository.findByNameLike("%dae%");
โ๏ธ Contains์ ๋์ผ
๐ ์๊ฐ์ธ์ฆ

ํจ์คํธ์บ ํผ์ค [์ง์ฅ์ธ ์ค๋ฌด๊ต์ก]
ํ๋ก๊ทธ๋๋ฐ, ์์ํธ์ง, UX/UI, ๋ง์ผํ , ๋ฐ์ดํฐ ๋ถ์, ์์ ๊ฐ์, The RED, ๊ตญ๋น์ง์, ๊ธฐ์ ๊ต์ก, ์๋น์ค ์ ๊ณต.
fastcampus.co.kr