โ€ก๐Ÿ‘ฉโ€๐Ÿ’ป โ€ก/ยบSpring

[Spring JPA] JpaRepository ์ธํ„ฐํŽ˜์ด์Šค findById() ๋ฉ”์†Œ๋“œ ์žฌ์‚ฌ์šฉ

Trudy | ์†ก์—ฐ 2023. 12. 21. 22:10

๐Ÿ“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() ๋ฉ”์†Œ๋“œ๋Š” ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด ์•„๋‹ˆ๋ผ ๋ฉ”์†Œ๋“œ ์žฌ์‚ฌ์šฉ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋Œ“๊ธ€์ˆ˜0