๐Ÿ๏ธ Spring/QueryDsl

์ •๋ ฌ ์ •๋ ฌ์€ orderBy()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. desc(), asc() : ๋‚ด๋ฆผ์ฐจ์ˆœ, ์˜ค๋ฆ„์ฐจ์ˆœ nullsLast() : null ์ธ ๊ฒฝ์šฐ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. nullsFirst() : null ์ธ ๊ฒฝ์šฐ ๊ฐ€์žฅ ์ฒ˜์Œ์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. setup ์ฝ”๋“œ @BeforeEach fun before() { val teamA = Team(name = "teamA") val teamB = Team(name = "teamB") em.persist(teamA) em.persist(teamB) val members = listOf( Member(username = "member1", age = 10, team = teamA), Member(username = "member2", age = 20, team ..
๊ฒฐ๊ณผ ์กฐํšŒ ๋ฉ”์†Œ๋“œ fetch() : ๋ฆฌ์ŠคํŠธ ์กฐํšŒ, ๋ฐ์ดํ„ฐ ์—†๋Š” ๊ฒฝ์šฐ ๋นˆ ๋ฆฌ์ŠคํŠธ ๋ฐ˜ํ™˜ fetchOne() : ๋‹จ ๊ฑด ์กฐํšŒ ๊ฒฐ๊ณผ๊ฐ€ ์—†์œผ๋ฉด null ๊ฒฐ๊ณผ๊ฐ€ ๋‘˜ ์ด์ƒ์ด๋ฉด NonUniqueResultException fetchFirst() : limit(1).fetchOne()๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ QueryDSL 5.0 ๋ฒ„์ „์—์„œ Deprecate๋œ ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. fetchResult() : ํŽ˜์ด์ง• ์ •๋ณด ํฌํ•จ, total count ์ฟผ๋ฆฌ ์ถ”๊ฐ€ ์‹คํ–‰ fetchCount() : count ์ฟผ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ count ์ˆ˜ ์กฐํšŒ Reference ์‹ค์ „! Querydsl - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜ Querydsl์˜ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค๋ฌด ํ™œ์šฉ๊นŒ์ง€, ํ•œ๋ฒˆ์— ํ•ด๊ฒฐํ•ด๋ณด์„ธ์š”!, ๋ณต์žกํ•œ ์ฟผ๋ฆฌ, ๋™์  ์ฟผ๋ฆฌ๋Š” ์ด์ œ ์•ˆ๋…•! Querydsl๋กœ ์ž๋ฐ” ๋ฐฑ์—”๋“œ..
QueryDSL์˜ ๊ธฐ๋ณธ ๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @Test @DisplayName("๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ฟผ๋ฆฌ EX") fun testSearchQuery() { val eq: BooleanExpression = member.username.eq("member1") //username = "member1" val ne: BooleanExpression = member.username.ne("member1") //username != "member1" val eq_not: BooleanExpression = member.username.eq("member1").not() //username != "member1 val isNotNull: BooleanExpression = member.us..
Q-Type ์ฟผ๋ฆฌdsl์„ ์‚ฌ์šฉํ•˜๋ฉด QType์„ ํ†ตํ•ด ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. QType์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Qํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• new QMember("m") : ๋ณ„์นญ(alias)์„ ์ง์ ‘ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. JPQL ์‹คํ–‰ ์‹œ select m From Member m ~~ ์‹์œผ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. QMember.member : QueryDSL์ด ๊ธฐ๋ณธ์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค static-import๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊น”๋”ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„์นญ์„ ์ง์ ‘ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์„ Joinํ•˜๋Š” ๊ฒฝ์šฐ ํ˜น์€ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณ„์นญ ์ง์ ‘ ์ง€์ • @Test @DisplayName("Qํƒ€์ž… ์ง์ ‘ ์ƒ์„ฑํ•˜๊ธฐ") f..
๋ง ๋ž‘
'๐Ÿ๏ธ Spring/QueryDsl' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)