JPA
-
[ Querydsl ] ํ๋ก์ ์ (Projections)๊ณผ ๊ฒฐ๊ณผ๋ฐํ (ํ๋กํผํฐ์ ๊ทผ, ํ๋์ง์ ์ ๊ทผ, ์์ฑ์ ์ฌ์ฉ)JPA 2022. 3. 28. 14:00
ํ๋ก์ ์ (Projections) ? Querydsl์ ์ด์ฉํด entity์ ์ฒด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ์๋๋ผ ์กฐํ ๋์์ ์ง์ ํด ์ํ๋ ๊ฐ๋ง ์กฐํํ๋ ๊ฒ์ ๋งํ๋ค. ๊ธฐ๋ณธ 1. ํ๋ก์ ์ ๋์์ด ํ๋์ผ ๋ List result = queryFactory .select(member.username) .from(member) .fetch(); ํ๋ก์ ์ ๋์์ด ํ๋์ผ๊ฒฝ์ฐ ์์ฒ๋ผ ํ์ ์ ๋ช ํํ๊ฒ ์ง์ ํ๋ฉด ๋๋ค. 2. ํ๋ก์ ์ ๋์์ด ๋๊ฐ ์ด์์ผ ๊ฒฝ์ฐ List result = queryFactory .select(member.username, member.age) .from(member) .fetch(); for (Tuple tuple : result) { String username = tuple.get(member.us..
-
[ Querydsl ] ๋์ ์ฟผ๋ฆฌ ๋ง๋ค๊ธฐ(BooleanExpression, BooleanBuilder)JPA 2022. 3. 22. 01:26
Querydsl์์ ๋์ ์ฟผ๋ฆฌ ๊ตฌํํ๋ ๋ฐฉ๋ฒ Querydsl์์๋ ๋์ ์ฟผ๋ฆฌ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด BooleanBuilder์ Where ๋ค์ค ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค. ๋๋ค ๊ฐ์ 'Expression' ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ธฐ ๋๋ฌธ์ Where๋ฅผ ์ฒ๋ฆฌํ๋ค๋ ๋ชฉ์ ์ ๊ฐ์ง๋ง, ์์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์๋ค. 1. BooleanBuilder @Test public void ๋์ ์ฟผ๋ฆฌ_BooleanBuilder() throws Exception { String usernameParam = "member1"; Integer ageParam = 10; List result = searchMember1(usernameParam, ageParam); Assertions.assertThat(r..
-
[ JPA ] ๋ณตํฉํค(composite key) ๋งคํ (@EmbeddedId)JPA 2022. 2. 21. 14:40
ํ์ฌ Group๊ณผ Member ํ ์ด๋ธ ์ฌ์ด์ GroupMemberMap์ด๋ผ๋ ๋งคํ ํ ์ด๋ธ์ ๋ง๋ค์ด ๊ทธ๋ฃน๋ณ๋ก ๋ฉค๋ฒ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ค ํ๋ค. 1. ๋จผ์ GroupMemberMap ํ ์ด๋ธ ์์ฑ ํ groupId์ MemberId๋ฅผ PK๋ก ์ค์ ํด groupId์ MemberId๋ฅผ ๋ณตํฉํค(๋ฐ์ดํฐ๋ฅผ ๋ํํ๋ ํค๊ฐ ์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒ)๋ก ๊ฐ์ง๊ฒ ์ค์ ํด ๋์๋ค. 2. Primary Key Class์๋ @Embeddable ์ด๋ ธํ ์ด์ ์ ๋ฌ์์ค๋ค. @Entity @Table(name = "group_member_map") @NoArgsConstructor @AllArgsConstructor @Data @Builder @EntityListeners(AuditingEntityListener.class) publ..