Posts
Q&A
hibernate ๋ฒ์
์๋ ํ์ธ์ y2gcoder๋๋น ๋ฅด๊ณ ์์ธํ ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!๋ง์๋๋ก hibernate 5.6.7 ๋ฅผ ์ฌ์ฉํ๋ฉด์ ํ ์คํธ๊ฐ ์ ๋๋ก ๋์ํ์ฌ ์ฌ์ญค๋ณธ ๊ฑฐ์์ต๋๋ค.๋ต๋ณํด์ฃผ์ ๊ฒ์ ๋ณด๋, querydsl -> jpql -> jpa -> hibernate ๊ฐ ๋ง์ง๋ง, spring data jpa์ ์ฟผ๋ฆฌ ๋ฉ์๋๋ฅผ ํตํด์ jpql ๋ก translate ํด์ฃผ๋ ๊ณณ์์ ๋ฌธ์ ๋ผ๊ณ ์๊ฐ์ด ๋ญ๋๋ค๊ฐ์ฌํฉ๋๋ค ! ํด๊ฒฐ๋์์ด์
- 0
- 2
- 2.9K
Q&A
ํ๋ก์ ๊ฐ์ฒด
- 0
- 2
- 564
Q&A
querydsl์์์ ๊ฐ ํ์ ์ปฌ๋ ์
์๋ ํ์ธ์ ์ํ๋ ์ฃผ๋ง์ ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค https://drive.google.com/file/d/13TVNk7HjfIfRNDqcPK3RnZ2IyTowL0ey/view?usp=sharing ํด๋น ๋งํฌ์์ pdf ํ์ผ์ ์ค๋ช ์ด ๋ค์ด์์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค
- 1
- 3
- 1K
Q&A
null ๊ฐ์ ์คํ๋ง์ด ์์กด๊ด๊ณ๋ฅผ ๋ฌด์กฐ๊ฑด์ ์ผ๋ก ์ฃผ์ ํด์ค๊น์?
์๋ ํ์ธ์ David ๋ ! ์ง๋ฌธ์ด ์ ๋งคํ๊ฒํด์ ์ฃ์กํฉ๋๋คใ ๋ค์ ๋ง์๋๋ฆฌ์๋ฉด ์์กด๊ด๊ณ ์ฃผ์ ์ด ์๋ฃ๋๊ณ ์ด๊ธฐํ ์ฝ๋ฐฑ์ด ์ด๋ค์ง๋๋ค. 1. ๊ทธ๋ ๋ค๋ฉด ์คํ๋ง์ ์์กด๊ด๊ณ ์ฃผ์ ์ด ์๋ฃ๋๋ค๋ ๊ฒ์ ์ด๋ป๊ฒ ์ธ์งํ๋์??์ ์๊ฐ : null ๊ฐ์ด์๋ url์ ๊ฐ์ด ํ ๋น๋๋ฉด ์์กด๊ด๊ณ ์ฃผ์ (๊ฐ ์ฃผ์ )์ด ์๋ฃ๋๋ค๊ณ ์๊ฐ 3. ์ ์๊ฐ์ด ๋ง๋ค๋ฉด ์คํ๋ง์ด ๋น์ ๋ฑ๋กํ ๋, ์์์ ๋ฐฐ์ด "์ต์ ์ฒ๋ฆฌ"๋ฅผ ์ ์ธํ ๋๋จธ์ง ํ๋กํผํฐ๋ค์ ๊ฐ์ด ์ฃผ์ ๋์ด์ผ ์์กด๊ด๊ณ ์ฃผ์ ์ด ์๋ฃ๋๋ค๊ณ ์ธ์งํ๋์? ๊ฐ์ฌํฉ๋๋ค !
- 0
- 2
- 318
Q&A
discountPolicy.discount(member, itemPrice)์์ member ๋๊ธฐ๋ ๊ฒ์ ๋ํ ์ง๋ฌธ
๊ฐ์ฌํฉ๋๋ค!
- 0
- 2
- 221
Q&A
select ์ฟผ๋ฆฌ ๋ฐ์
์๋ ํ์ธ์ ์ํ๋ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ๋ค๋ง N+1 ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ค๋ฉด ์ฒ์์ ์กฐํํ๋ member ์์ฒด๊ฐ ์ง๊ธ์ฒ๋ผ ํ๋๊ฐ ์๋๋ผ ๋ ์ด์์ด์ด์ผ ํฉ๋๋ค.๋ผ๋๊ฒ ๋ฌด์จ ๋ง์์ด์ ์ง ์ดํด๊ฐ ๋์ง ์์ต๋๋ค members์ ์๋ member๋ค์ ํ๋ฒ์ ์ค์ ๊ฐ์ฒด๋ฅผ ์กฐํํ์ฌ์ N+1์ด ๋ฐ์ํ์ง ์๋ ๊ฒ์ด๋ค๋ผ๊ณ ์ดํด๋ฅผ ํ์ต๋๋ค. JPA2์์ ๊ฐ๋ฅด์ณ์ฃผ์ Order๊ณผ Member์์ ๊ด๊ณ๋ฅผ ์ฐ๊ด์ง์ด์ ์๊ฐํด๋ดค๋๋ฐ, Order๋ฅผ 1๋ฒ ์กฐํํ๋ฉด Member๊ฐ N๋ฒ๋งํผ ์กฐํ๋์ด N+1์ด ๋ฐ์๋๋ค. ์ด ๋๋ N -> 1๋ก ์กฐํํ๊ธฐ ๋๋ฌธ์ N+1์ด ๋ฐ์ํ ์ด์ ๋ ์ดํด๋์ต๋๋ค. Team -> Member๋ 1 -> N์ผ๋ก ์กฐํ๋๋๋ฐ member ์์ฒด๊ฐ ๋ ์ด์์ด ๋์ด์ผ N+1๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค์ด ๋ง์์ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค.
- 0
- 4
- 322
Q&A
select ์ฟผ๋ฆฌ ๋ฐ์
์๋ ํ์ธ์ ์ํ๋ ์ ๊ฐ sql ์ ์์ฌ๋ ธ์๋ค์,, ์ฃ์กํฉ๋๋ค select team0_.TEAM_ID as TEAM_ID1_10_0_, team0_.name as name2_10_0_ from Team team0_ where team0_.TEAM_ID=? team.getClass() = class jpabook.domain.Team Hibernate: select members0_.TEAM_ID as TEAM_ID10_6_0_, members0_.MEMBER_ID as MEMBER_I1_6_0_, members0_.MEMBER_ID as MEMBER_I1_6_1_, members0_.createdBy as createdB2_6_1_, members0_.createdDate as createdD3_6_1_, members0_.lastModifiedDate as lastModi4_6_1_, members0_.lastmodifiedBy as lastmodi5_6_1_, members0_.city as city6_6_1_, members0_.name as name7_6_1_, members0_.street as street8_6_1_, members0_.TEAM_ID as TEAM_ID10_6_1_, members0_.zipcode as zipcode9_6_1_ from Member members0_ where members0_.TEAM_ID=? member = jpabook.domain.Member@656922a0 member.getName() = member1 member = jpabook.domain.Member@656922a0 member = jpabook.domain.Member@5922d3e9 member.getName() = member2 member = jpabook.domain.Member@5922d3e9 member = jpabook.domain.Member@7d57dbb5 member.getName() = member3 member = jpabook.domain.Member@7d57dbb5 sql ์ฟผ๋ฆฌ ์ ๋๋ค, https://drive.google.com/file/d/1TE6P3omeTuFu6VyJdcQ_p9nttD5cz5AS/view?usp=sharing
- 0
- 4
- 322
Q&A
V4 ์ง๋ฌธ์์ต๋๋ค!
์.. ๊ทธ๋ฌ๋ฉด ์ ๊ฐ ์ง๋ฌธ์์ lazy๋ผ๋ ๊ฒ ์์ฒด๊ฐ ์๋ชป๋ ํํ์ด์๊ตฐ์ ๋ฐ๋ก dto๋ฅผ ์กฐํํ ๋๋ jpa์์ ๋ค๋ฃจ๋ ์ํฐํฐ๊ฐ ์๋ ์ ๋ง dbํ ์ด๋ธ์ด๋ผ ์๊ฐํ๋ฉด ๋๊ฒ ๋ค์,, ์ดํด ํ์คํ ๋์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค ์ํ๋!!!
- 0
- 2
- 475
Q&A
์ต์ ํ ์๋ฏธ
์ฃผ๋ง์๋ ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค ์ํ๋
- 0
- 2
- 234
Q&A
์์ ๋งคํ์ ๋ํ ์ง๋ฌธ
๊ท์คํ ์ฃผ๋ง์ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค ์ํ๋ ๋ง์๋๋ก ๋ชจ์์ด ๊ฐ์ผ๋๊น ๋ง์๋๋ก ๊ตฌ๋ถํ ์ ์๋ ํ์ ํ๋๋ง ์์ด๋ ๋ ๊ฒ ๊ฐ์ต๋๋ค ๋๋ฌด ์ด๋ ต๊ฒ ์๊ฐํ ๊ฒ ๊ฐ์์ ๊ฐ์ฌํฉ๋๋ค
- 0
- 2
- 250