JPA 심화 3-2

5w31892p·2023년 2월 4일
0

JPA 심화

목록 보기
12/19

QueryDSL 로 개발하기

:: 슬랙 도메인

  • User
    • 유저 정보
    • 채널과의 관계 양방향
    • 다른 도메인들과의 관계는 단방향
  • Channel
    • 대화 채널은 유저와 다대다
  • Thread
    • 채널내 대화 쓰레드로 Post 와 같이 댓글, 이모지, 멘션과 관계
  • Comment
    • 쓰레드내 댓글로 쓰레드와 다대일
    • 이모지, 멘션과도 관계
  • Emotion
    • 쓰레드, 댓글내 이모지로 쓰레드, 댓글과 다대다
  • Mention
    • 쓰레드, 댓글내 멘션으로 쓰레드, 댓글과 다대다

:: JPAQueryFactory 사용을 위해 추가해야할 코드

  • JPAQueryFactory 에 entityManager 를 주입해서 Bean 으로 등록해줘야 함
// configuration 패키지안에 추가

@Configuration
public class JPAConfiguration {
  @PersistenceContext
  private EntityManager entityManager;

  @Bean
  public JPAQueryFactory jpaQueryFactory() {
    return new JPAQueryFactory(entityManager);
  }
}

:: Slack 멘션된 쓰레드 목록 조회기능

  • 전체 채널에서 내가 맨션된 쓰레드 상세정보 목록
  • 조회문 (Select)
    • 채널명 (Channel.name)
    • 쓰레드 작성자명(User.username)
    • 쓰레드 작성자 프로필이미지(User.profileImageUrl)
    • 쓰레드 본문 (Thread.message)
    • 쓰레드 이모지 정보 (Emotion.body) + 이모지별 카운트
    • 쓰레드 댓글 목록 정보 (Comment.message)
      • 쓰레드 댓글목록의 이모지목록 정보 (Emotion.body) + 이모지별 카운트
  • 조회 대상 (From)
    • 쓰레드 목록 (Thread)
  • 조건문 (Where)
    • 내가 멘션된 (Mention) 쓰레드 목록
  • 정렬문 (Order)
    • 멘션된 시간 기준 내림차순 (Mention)

:: 과제 -> Slack 멘션 및 반응 목록 조회기능

  • 전체 채널에 내가 작성한 쓰레드 그리고 댓글 중 이모지가 달려있는 쓰레드 상세정보 목록
    • 중복없이 최신 이모지 기준목록

GitHub 실습코드

0개의 댓글