์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- ๋ฐ์ดํฐํ์
- ์ฐ
- ์คํ์์ด
- ์๋ฐ
- StringBuilder
- ์ฟ ํกDB
- ๋ฐฑ์ค11053 #ํ์ด์ฌ #python
- ๋ฐฑ์ค1874
- ํ๋ฐฉ์ฟผ๋ฆฌ
- ๋ฐฑ์ค9012
- StringBuffer
- ์ฐ์ฐ์
- ์คํ
- ๋ฌธ์์ด
- ๋
- ๋ฐฑ์ค9093
- stream
- ์
- ์คํธ๋ฆผ
- java
- ์ฟ ํกERD
- ๋ฐฐ์ด
- Today
- Total
๋ชฉ๋กjpa (8)
Tech Log ๐ ๏ธ
OSIV๋ OSIV(Open Session In View)๋ฅผ ์ฌ์ฉํ๋ฉด ์ต์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ์์ ์์ ๋ถํฐ API ์๋ต์ด ๋๋ ๋๊น์ง ์์์ฑ ์ปจํ ์คํธ์DB ์ปค๋ฅ์ ์ ์ ์งํ๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ ๋ทฐ์ ์ปจํธ๋กค๋ฌ์์ ์ง์ฐ ๋ก๋ฉ์ ํ ์ ์๋ค. *ํธ๋์ญ์ ์ด ์์ํ ๋ DB์ปค๋ฅ์ ์ ํ๋ํ๋ค. ํ์ง๋ง ์ด ์ ๋ต์ ํฐ ๋จ์ ์ด ์๋๋ฐ, ๋๋ฌด ์ค๋ ์๊ฐ DB ์ปค๋ฅ์ ์ ์ ์งํจ์ผ๋ก ์ธํด ๋ฆฌ์์ค ๋ถ์กฑ ์ฅ์ ๋ก ์ด์ด์ง ์ ์๋ค๋ ๊ฒ์ด๋ค.๋ฐ๋ผ์ ์ํฉ์ ๋ง๋ OSIV ์ ๋ต์ด ํ์ํ๋ค. OSIV ๋์ ๋ฐฉ์ jpa์์๋ OSIV์ ๊ธฐ๋ณธ๊ฐ์ true (์ฌ์ฉ)์ผ๋ก ์ ๊ณตํ๊ณ ์๋ค. 1. ํด๋ผ์ด์ธํธ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์๋ธ๋ฆฟ ํํฐ๋ ์คํ๋ง ์ธํฐ์ ํฐ์์ ์์์ฑ ์ปจํ ์คํธ๋ฅผ ์์ฑํ๋ค. 2. ์๋น์ค ๊ณ์ธต์์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ ์์์ฑ ์ปจํ ์คํธ๋ก ํธ๋์ญ์ ์ ์์ํ..
์ปฌ๋ ์ ์กฐํ ์ต์ ํ - 1 ์์๋ ์ํฐํฐ๋ฅผ ์กฐํํ ํ์ DTO๋ก ๋ณํ์ํค๋ ๋ฐฉ์์ผ๋ก ํ์์ง๋ง, ์ด๋ฒ ์ฑํฐ์์๋ JPA ์์ DTO๋ฅผ ์ง์ ์กฐํํ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ค. JPA์์ DTO ์ง์ ์กฐํ DTO๋ฅผ ์กฐํํ ๋, ToOne ๊ด๊ณ๋ค์ ๋จผ์ ์กฐํํ๊ณ ToMany ๊ด๊ณ๋ค์ ๋ณ๋๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ์ข๋ค.ToOne ๊ด๊ณ๋ฅผ ๋จผ์ ์ฒ๋ฆฌํ๋ ์ด์ ๋ Row ์์ ์ํฅ์ ์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.ํ์ง๋ง ToMany ๊ด๊ณ๋ Row์๋ฅผ ์ฆ๊ฐ์ํค๋ฏ๋ก(๋ฐ์ดํฐ ๋ปฅํ๊ธฐ) ๋ณ๋๋ก ์ฒ๋ฆฌํ๋ ํธ์ด ์ข๋ค. private List findOrders() {return em.createQuery( "select new jpabook.jpashop.repository.order.query.OrderQueryDto(o.id, m.name, o.or..
์ผ๋๋ค ๊ด๊ณ์ธ ์ปฌ๋ ์ ์ ํ์น ์กฐ์ธ์ผ๋ก ์กฐํํ ๋, ํ๋์ ์ ๋ณด์ ์ฌ๋ฌ๊ฐ์ ์ปฌ๋ ์ ์ด ์๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๊ฐ ๋์ด๋๊ธฐ ๋๋ฌธ์ ์ต์ ํ์ ์ด๋ ค์์ด ์๋ค. ๋๋ฌธ์ ํ์ด๋ฒ๋ค์ดํธ ์ต์ ์ ์ค์ผ๋ก์จ ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์ํฐํฐ ์ง์ ๋ ธ์ถ @GetMapping("/api/v1/orders") public List ordersV1() { List all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName(); //Lazy ๊ฐ์ ์ด๊ธฐํ order.getDelivery().getAddress(); //Lazy ๊ฐ์ ์ด๊ธฐํ List orderItems = order.getOrderItem..
์ด์ ๊ฐ์ ๋ด์ฉ ์ํฐํฐ๋ฅผ Request Body ์ ์ง์ ๋งคํํ ๊ฒฝ์ฐ ๋ฌธ์ ์ - ์ํฐํฐ์ ํ๋ ์ ํ ์ด์ , API ๊ฒ์ฆ์ ์ํ ๋ก์ง์ด ์ถ๊ฐ๋๋ค. ํ์ง๋ง ์ค๋ฌด์์๋ ์ํฐํฐ๋ฅผ ์ด์ฉํ ์ฌ๋ฌ API๋ค์ด ๋ง๋ค์ด์ง๋๋ฐ , ๊ฐ๊ฐ์ API๋ค์ ์ํ ๋ชจ๋ ์์ฒญ์ฌํญ๋ค์ ๋ด๊ธฐ๋ ์ด๋ ต๋ค. ๋ํ ์ํฐํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด API ์คํ์ด ๋ณํ๋ค ! - ๋ฐ๋ผ์ ์ํฐํฐ๋ฅผ Requst Body ์ ์ง์ ๋งคํ์ํค๋ ๊ฒ์ด ์๋ , API ๋ฅผ ์ํ DTO๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์ ์ด๊ฒ์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์์ผํ๋ค. - DTO๋ฅผ ํตํด์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฅ์ ์ด ์๋ค. 1. ์ํฐํฐ์ ํ๋ ์ ํ ์ด์ ์ ์ํ ๋ก์ง์ ๋ถ๋ฆฌํ ์ ์๋ค. - ์ด์ ๋ ์ด์ ์ํฐํฐ๊ฐ ์ฌ๋ฌ API๋ค์ ์ํ ์์ฒญ์ฌํญ๋ค์ ๋ด์ ํ์๊ฐ ์๋ค. 2. ์ํฐํฐ์ API ์คํ์ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ ์ ..
์ฐ๊ด๊ด๊ณ ๋งตํ ์ ๊ณ ๋ คํด์ผ ํ 3๊ฐ์ง 1. ๋ค์ค์ฑ ex) ๋ค๋์ผ , ์ผ๋์ผ 2. ๋จ๋ฐฉํฅ , ์๋ฐฉํฅ - ํ ์ด๋ธ์ ์ธ๋ํค ํ๋๋ก ์์ชฝ ์กฐ์ธ์ด ๊ฐ๋ฅํ์ง๋ง , ๊ฐ์ฒด๋ ์ฐธ์กฐ์ฉ ํ๋๊ฐ ์๋ ๊ณณ์ผ๋ก๋ง ์ฐธ์กฐ๊ฐ ๊ฐ๋ฅํ๋ค. - ๋ฐ๋ผ์ ์๋ฐฉํฅ ๊ด๊ณ๋ผ๋ ๊ฒ์ ์ฐธ์กฐ์ฉ ํ๋๊ฐ ์์ชฝ ๋ชจ๋ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค. 3. ์ฐ๊ด ๊ด๊ณ์ ์ฃผ์ธ - ๊ฐ์ฒด๋ ํ ์ด๋ธ๊ณผ ๋ฌ๋ฆฌ ์ฐธ์กฐ๊ฐ ๋ ๊ตฐ๋ฐ์์ ๋ง๋ค์ด ์๋ฐฉํฅ ๊ด๊ณ๋ฅผ ์ค์ ํ๋ค. - ์ฐธ์กฐ์ฉ ํ๋๊ฐ ์์ชฝ์ ์๋ ์๋ฐฉํฅ ๊ด๊ณ์์ ์ธ๋ํค๋ฅผ ๊ด๋ฆฌํ "์ฐ๊ด ๊ด๊ณ์ ์ฃผ์ธ"์ด ํ์ํ๋ค. a. ์ฐ๊ด ๊ด๊ณ์ ์ฃผ์ธ - ์ธ๋ํค๋ฅผ ๊ด๋ฆฌํ๋ค. b. ์ฃผ์ธ์ ๋ฐ๋ํธ - ์ธ๋ํค์ ์ํฅ์ ์ฃผ์ง ์๊ณ ๋จ์ ์กฐํ๋ง ๊ฐ๋ฅํ๋ค !! ์ฐ๊ด ๊ด๊ณ์ ์ข ๋ฅ 1. ๋ค๋์ผ [n:1] - ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ค. 1-1 . ๋ค๋์ผ ์๋ฐฉํฅ - ์ธ๋ํค๊ฐ ์๋..
๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค.
๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค.
๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค.