์ ๋ ฌ ์ ๋ ฌ์ 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..