note of the day, 21.10.06

2021. 10. 7. 00:14


๐Ÿ˜Ž Repository / Dto / Entity ๊ฐœ๋…

https://haem-jsp.tistory.com/57

 

DAO(Repository), DTO, Entity ๋ž€?

DAO(Data Access Object) Repository Package๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ํ”„๋กœ์ ํŠธ์— XxxxRepository ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ•œ๋‹ค. DAO๋Š” ์‹ค์ œ๋กœ DB์— ์ ‘๊ทผํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ •๋ฆฌํ•˜์ž๋ฉด, XxxxRepository๋Š” DB์— ๋ฐ์ดํ„ฐ๋ฅผ CRUD(..

haem-jsp.tistory.com


๊นŒ๋จน๊ธฐ์ „์— ํ˜ธ๋‹ค๋‹ฅ ์ž‘์„ฑํ•˜๋Š”,,

๐Ÿ˜Ž Search/Create/Update (get/post/patch) API๋ฅผ ์œ„ํ•ด BE ๊ฐœ๋ฐœํ•ด์•ผํ•˜๋Š” ๊ฒƒ / ์ˆœ์„œ ๋ฆฌ๋งˆ์ธ๋“œ

์ ‘๊ทผ ์ˆœ์„œ๋Š” 1->4 / ๊ฐœ๋ฐœํ• ๋•Œ ํŽธํ•œ ์ˆœ์„œ๋Š” 4->1

 

1. Controller์— API๋ฅผ ์š”์ฒญ๋ฐ›๋Š” ๋ฉ”์„œ๋“œ ์ž‘์„ฑ

 - @RequestMapping ์ด์šฉ

@RequestMapping(value = '/path', 
	method = RequestMethod.GET, // RequestMethod.POST, RequestMethod.PATCH
	produces = 'application/json;charset=UTF-8)

- get ๋ฐฉ์‹์œผ๋กœ ํ˜ธ์ถœํ• ๋•Œ๋Š” @RequestParam() ์„ ์ด์šฉ, post/patch์—๋Š” @RequestBody ์ด์šฉ

- @RequestBody๋ฅผ ์ด์šฉํ• ๋•Œ์—๋Š” ํ˜•์‹์— ๋งž์ถฐ dto ํด๋ž˜์Šค(@Data)๋ฅผ ์ž‘์„ฑ 

 

2. Service์— para/return ํ˜•์‹ ๋งž์ถฐ Repository ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ ์ž‘์„ฑ

- I/F๋ž‘ implementsํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฆฌํ•ด๋„ ๊ดœ์ฐฎ์Œ

- Optional<T>๋Š” ์กฐ๊ธˆ ๋” ๊ณต๋ถ€ํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„

- Create/Update๋Š” @Transactional ์ถ”๊ฐ€, JpaRepository๋ฅผ ์ด์šฉํ•ด save

return xxxRepository.save (Xxx.xxxBuilder()
		....
        .build());

 

3. Repository์—์„œ queryFactory ์ด์šฉํ•ด ์ฟผ๋ฆฌ ์‹คํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ ์ž‘์„ฑ

 - Search๋Š” Repository์— ์ž‘์„ฑ

 - Create/Update๋ฅผ ์œ„ํ•ด ์ƒˆ๋กœ์šด Entity T์˜ ๊ฒฝ์šฐ, JpaRepository<T, String> ์„ extends ํ•˜๋Š” IF๋ฅผ ์ถ”๊ฐ€๋กœ ์ž‘์„ฑ 

 

4. Entity์— Table ํ˜•์‹์— ๋งž๋Š” ํด๋ž˜์Šค ์ž‘์„ฑ

 - @Table(name = '', schema = '') 

 - @Builder(builderMethodName = '') ๋Š” Create/Update์‹œ JpaRepository๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ

 - PK๋Š” ~~PK๋ผ๋Š” Entity๋ฅผ ๋งŒ๋“ค์–ด @Id๋ฅผ ๋ถ™์—ฌ ๊ณ ์œ ํ•œ ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉ

 

 

'My Story > note of the day' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

note of the day, 21.10.15  (0) 2021.10.15

BELATED ARTICLES

more