woowacourse-teams / 2022-pickpick

🐹 사라지는 Slack 메시지, 우리가 주워줄게!
https://jupjup.site
72 stars 6 forks source link

fix: ReminderRepository 에서 단일 조회 시 발생하는 쿼리 3개 -> 1개 수정 #709

Closed hyewoncc closed 1 year ago

hyewoncc commented 1 year ago

요약

ReminderRepository 에서 발생하는 3개의 쿼리를 1개로 수정


작업 내용

리마인더 단일 조회 시 리마인더, 메시지, 멤버를 조회하는 각각의 쿼리가 나갔습니다 join fetch를 적용해 쿼리 1개로 조회할 수 있도록 수정했습니다

before

Hibernate: 
    select
        reminder0_.id as id1_5_,
        reminder0_.member_id as member_i3_5_,
        reminder0_.message_id as message_4_5_,
        reminder0_.remind_date as remind_d2_5_ 
    from
        reminder reminder0_ 
    where
        reminder0_.message_id=? 
        and reminder0_.member_id=?
Hibernate: 
    select
        message0_.id as id1_4_0_,
        message0_.channel_id as channel_6_4_0_,
        message0_.member_id as member_i7_4_0_,
        message0_.modified_date as modified2_4_0_,
        message0_.posted_date as posted_d3_4_0_,
        message0_.slack_message_id as slack_me4_4_0_,
        message0_.text as text5_4_0_ 
    from
        message message0_ 
    where
        message0_.id=?
Hibernate: 
    select
        member0_.id as id1_3_0_,
        member0_.first_login as first_lo2_3_0_,
        member0_.slack_id as slack_id3_3_0_,
        member0_.token as token4_3_0_,
        member0_.thumbnail_url as thumbnai5_3_0_,
        member0_.username as username6_3_0_,
        member0_.workspace_id as workspac7_3_0_ 
    from
        member member0_ 
    where
        member0_.id=?

after

Hibernate: 
    select
        reminder0_.id as id1_5_0_,
        member1_.id as id1_3_1_,
        message2_.id as id1_4_2_,
        reminder0_.member_id as member_i3_5_0_,
        reminder0_.message_id as message_4_5_0_,
        reminder0_.remind_date as remind_d2_5_0_,
        member1_.first_login as first_lo2_3_1_,
        member1_.slack_id as slack_id3_3_1_,
        member1_.token as token4_3_1_,
        member1_.thumbnail_url as thumbnai5_3_1_,
        member1_.username as username6_3_1_,
        member1_.workspace_id as workspac7_3_1_,
        message2_.channel_id as channel_6_4_2_,
        message2_.member_id as member_i7_4_2_,
        message2_.modified_date as modified2_4_2_,
        message2_.posted_date as posted_d3_4_2_,
        message2_.slack_message_id as slack_me4_4_2_,
        message2_.text as text5_4_2_ 
    from
        reminder reminder0_ 
    inner join
        member member1_ 
            on reminder0_.member_id=member1_.id 
    inner join
        message message2_ 
            on reminder0_.message_id=message2_.id 
    where
        reminder0_.message_id=? 
        and reminder0_.member_id=?


github-actions[bot] commented 1 year ago

Unit Test Results

235 tests  ±0   235 :heavy_check_mark: ±0   17s :stopwatch: -1s   89 suites ±0       0 :zzz: ±0    89 files   ±0       0 :x: ±0 

Results for commit 7348caa9. ± Comparison against base commit cfb5e236.

This pull request removes 4 and adds 4 tests. Note that renamed tests count towards both. ``` com.pickpick.slackevent.SlackEventTest ‑ [2] request={event={type=message, subtype=message_changed}}, expected=MESSAGE_CHANGED com.pickpick.slackevent.SlackEventTest ‑ [3] request={event={type=message, subtype=message_deleted}}, expected=MESSAGE_DELETED com.pickpick.slackevent.SlackEventTest ‑ [4] request={event={type=message, subtype=thread_broadcast}}, expected=MESSAGE_THREAD_BROADCAST com.pickpick.slackevent.SlackEventTest ‑ [5] request={event={type=message, subtype=file_share}}, expected=MESSAGE_FILE_SHARE ``` ``` com.pickpick.slackevent.SlackEventTest ‑ [2] request={event={subtype=message_changed, type=message}}, expected=MESSAGE_CHANGED com.pickpick.slackevent.SlackEventTest ‑ [3] request={event={subtype=message_deleted, type=message}}, expected=MESSAGE_DELETED com.pickpick.slackevent.SlackEventTest ‑ [4] request={event={subtype=thread_broadcast, type=message}}, expected=MESSAGE_THREAD_BROADCAST com.pickpick.slackevent.SlackEventTest ‑ [5] request={event={subtype=file_share, type=message}}, expected=MESSAGE_FILE_SHARE ```
pickpick-sonarqube[bot] commented 1 year ago

Passed

Analysis Details

0 Issues

Coverage and Duplications

Project ID: woowacourse-teams_2022-pickpick_AYKprLeNXDQxKhlck1fc

View in SonarQube