[Spring JPA] JpaRepository ์ธํฐํ์ด์ค findById() ๋ฉ์๋ ์ฌ์ฌ์ฉ
๐findById() ๋ฉ์๋ ์ฌ์ฌ์ฉ
Spring JPA๋ฅผ ์ด์ฉํ Spring boot ํ๋ก์ ํธ์์๋ JpaRespository ์ธํฐํ์ด์ค๋ฅผ ์์ํ์ฌ Repository ์ฝ๋๋ฅผ ๊ตฌํํ๋ ๋ฐ, ์ฌ๊ธฐ์ JpaRepository๋ ๋ค์ํ ๋ฉ์๋๋ค์ ์ ๊ณตํ๋ค.
๊ทธ ์ค์์ ๋ง์ด ์ฌ์ฉํ๋ ๋ฉ์๋๋ก Id๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ findById() ๋ฉ์๋๊ฐ ์๋ค.
์ด๋, Id๊ฐ์ด ์๋ ๋ค๋ฅธ ํ๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ณ ์ถ๋ค๋ฉด ์ธํฐํ์ด์ค์ ํด๋น ๋ฉ์๋๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋ค.
๋ค์์ username์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด์ ๋ฉ์๋ ์ฌ์ฌ์ฉ์ ํ ์์ ์ฝ๋์ด๋ค.
@Repository
public interface MemberRepository extends JpaRepository<Member, Integer> {
Optional<Member> findByUsername(String username);
}
๐๋ฉ์๋ ์ฌ์ฌ์ฉ vs ์ค๋ฒ๋ผ์ด๋ฉ
๊ทธ๋ ๋ค๋ฉด ์ด๋ ๊ฒ ์ฌ์ฌ์ฉ ํ๋ ๊ฒ์ ์ค๋ฒ๋ผ์ด๋ฉ์ธ๊ฐ?
์ ๋ต๋ถํฐ ๋งํ์๋ฉด ์๋๋ค.
์ฒซ๋ฒ์งธ๋ก, ์ค๋ฒ๋ผ์ด๋ฉ์ ์์ ํด๋์ค์์ ์ ์ธ๋ ๋ฉ์๋๋ฅผ ํ์ ํด๋์ค์์ ์ฌ์ ์ํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋ฐ๋ผ์ ์์ ํด๋์ค์ ํ์ ํด๋์ค์ ๋ฉ์๋ ์ด๋ฆ, ๋งค๊ฐ๋ณ์, ๋ฐํ ํ์ ์ด ๋ชจ๋ ๋์ผํด์ผ ํ๋ค. ์ ๋ฉ์๋๋ ์ด๋ฆ ์์ฒด๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ค๋ฒ๋ผ์ด๋ฉ์ด๋ผ๊ณ ํ ์ ์๋ค.
๋๋ฒ์งธ, ์ ์ฝ๋์ ๋์ ๋ฐฉ์์ ์ดํด๋ณด๋ฉด findByUsername() ๋ฉ์๋๋ findById() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๋์ผํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ค.
๋ฐ๋ผ์, findByUsername() ๋ฉ์๋๋ ์ค๋ฒ๋ผ์ด๋ฉ์ด ์๋๋ผ ๋ฉ์๋ ์ฌ์ฌ์ฉ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.