- ERD ์์ฑ
- ์ํฐํฐ ํด๋์ค ์์ฑ
- ๋ฒ ์ด์ค ์ํฐํฐ ์์ฑ(์์คํ ์ปฌ๋ผ)
- ๋กฌ๋ณต ์ ๋ํ ์ด์ (@Setter์ ์ธ)
- ์ฐ๊ด๊ด๊ณ ๋งคํ
- ๊ฐ ์ํฐํฐ์ ๋ง๋ ์์ฑ์
- ๋น์ฆ๋์ค์ ๋ง๋ ๋ณ๊ฒฝ ์ญ์ ๋ฉ์๋ ์ถ๊ฐ
- JpaRepository ๊ณตํต ์ธํฐํ์ด์ค ์์ฑ
๊ณตํต ์ธํฐํ์ด์ค ์ ์ฉ ์์ JPA๋ก ๊ตฌํํ MemberJpaRepository ๋์ ์
์คํ๋ง ๋ฐ์ดํฐ JPA๊ฐ ์ ๊ณตํ๋ ๊ณตํต ์ธํฐํ์ด์ค ์ฌ์ฉ
์คํ๋ง ๋ฐ์ดํฐ JPA ๊ธฐ๋ฐ MemberRepository
public interface MemberRepository extends JpaRepository<Member, Long> { }
- Querydsl์ด์ฉํด์ ํ์ํ ๊ธฐ๋ฅ๋จผ์ ๋ ํ์งํ ๋ฆฌ๋ก ๊ตฌํํ๊ธฐ
public class MemberRepositoryImpl implements MemberRepositoryCustom {
private final JPAQueryFactory queryFactory;
public MemberRepositoryImpl(EntityManager em) {
this.queryFactory = new JPAQueryFactory(em);
}
@Override
//ํ์๋ช
, ํ๋ช
, ๋์ด(ageGoe, ageLoe)
public List<MemberTeamDto> search(MemberSearchCondition condition) {
return queryFactory
.select(new QMemberTeamDto(
member.id,
member.username,
member.age,
team.id,
team.name))
.from(member)
.leftJoin(member.team, team)
.where(usernameEq(condition.getUsername()),
teamNameEq(condition.getTeamName()),
ageGoe(condition.getAgeGoe()),
ageLoe(condition.getAgeLoe()))
.fetch();
}
private BooleanExpression usernameEq(String username) {
return isEmpty(username) ? null : member.username.eq(username);
}
private BooleanExpression teamNameEq(String teamName) {
return isEmpty(teamName) ? null : team.name.eq(teamName);
}
private BooleanExpression ageGoe(Integer ageGoe) {
return ageGoe == null ? null : member.age.goe(ageGoe);
}
private BooleanExpression ageLoe(Integer ageLoe) {
return ageLoe == null ? null : member.age.loe(ageLoe);
}
}
- ํต์ฌ๊ธฐ๋ฅ ๊ฐ๋ฐํ๊ธฐ
- ๊ฒ์์นดํ ๊ณ ๋ฆฌ, ๊ฒ์๋ฐ์ดํฐ, ๊ฒ์์ปจํ ์ธ , ๊ฒ์์ด๋ฏธ์ง ๋จผ์ ๋ฐ์ดํฐ ์ถ๊ฐํ๊ธฐ
- ๊ฒ์์นดํ ๊ณ ๋ฆฌ๋ DB์ ์ง์ ์ ๋ ฅ
- ๊ฒ์๋ฐ์ดํฐ, ์ปจํ ์ธ , ์ด๋ฏธ์ง๋ Dto์์ ๊ฐ ๋ฐ์์ ๊ฒ์๋จผ์ ์์ฑ -> (์ปจํ ์ธ ์์ฑ , ์ด๋ฏธ์ง ์์ฑ) ๊ฒฐ๊ณผ ํ์ธํ๊ธฐ
- ํ์๋ฆฌํ๋ก ๊ฒ์ ๋ฑ๋ก ํ์ด์ง ๋ง๋ค๊ธฐ
- ํ์๋ฆฌํ -> API -> ์๋น์ค -> ๋ ํ์งํ ๋ฆฌ -> ์๋น์ค -> ์ปจํธ๋กค๋ฌ
'๐ฝ๏ธ ํ๋ก์ ํธ > ํ๋ก์ ํธ ์ผ๊ธฐ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ผ๊ธฐ] ํ์ด์ง ์ด์ ์ค์ผ์น์ ๊ตฌํ ํ๋ฉด ๋น๊ต (0) | 2024.04.17 |
---|