์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[JPA] ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ - 3

๋ฏธ๋กœ910 2024. 10. 2. 12:19
๐Ÿ’ก
โ— ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
์ธํ„ฐํŽ˜์ด์Šค ์„ ์–ธ ๋ฐฉ๋ฒ•๊ณผ, ๊ธฐ๋ณธ์ ์ธ CRUD ๊ธฐ๋Šฅ์„ ์ž๋™์œผ๋กœ ์ œ๊ณต๋ฐ›๊ธฐ ์œ„ํ•œ JpaRepository ์ƒ์† ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•œ๋‹ค.
โ— JpaRepository์˜ ์—ญํ• ๊ณผ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
JpaRepository์˜ ์ƒ์† ๊ณ„์ธต(Repository → CrudRepository → PagingAndSortingRepository → JpaRepository)๊ณผ ๊ฐ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์—ญํ• ์„ ์ดํ•ดํ•œ๋‹ค.
โ— ์Šคํ”„๋ง์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๊ตฌํ˜„์ฒด๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฐœ๋…์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
์Šคํ”„๋ง์ด JpaRepository ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„์ฒด๋ฅผ ๋Ÿฐํƒ€์ž„ ์‹œ์— ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

PostRepository ์— ์‚ฌ์šฉ
//@Repository <-- ์ƒ๋žต ๊ฐ€๋Šฅ ์™œ? ์ƒ์†ํ•œ ๋…€์„์—๊ฒŒ ์–ด๋…ธํ…Œ์ด์…˜์ด ์กด์žฌํ•œ๋‹ค.
public interface PostRepository extends JpaRepository<Article, Integer>{
	// ๊ธฐ๋ณธ์ ์ธ CRUD ๊ธฐ๋Šฅ์„ ์ž๋™์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.
	// ํ•„์š”ํ•˜๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด ๋†“์€ ๊ณณ์— ์ถ”๊ฐ€์ ์ธ ์ฟผ๋ฆฌ๋‚˜ ๋ฉ”์„œ๋“œ ์ •์˜ ๊ฐ€๋Šฅํ•˜๋‹ค.
	
	
}

 

๋ฌธ๋ฒ• ํ™•์ธ
JpaRepository<T, ID>

์ฒซ ๋ฒˆ์งธ ํƒ€์ž… (Article)

  • ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค๋ฅผ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐ๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, Article์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ article ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐ๋˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ํƒ€์ž… (Integer)

  • ๊ธฐ๋ณธ ํ‚ค(Primary Key)์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค์˜ ๊ธฐ๋ณธ ํ‚ค ํ•„๋“œ(๊ณ ์œ  ID)๊ฐ€ ์–ด๋–ค ํƒ€์ž…์ธ์ง€ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๊ธฐ์„œ๋Š” Integer ํƒ€์ž…์˜ ๊ธฐ๋ณธ ํ‚ค(์˜ˆ: id ํ•„๋“œ)๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.