diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt index d2e20f4..5bb40f2 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt @@ -4,6 +4,7 @@ import com.querydsl.core.types.Projections import com.querydsl.core.types.dsl.CaseBuilder import com.querydsl.core.types.dsl.Expressions import com.querydsl.core.types.dsl.NumberExpression +import com.querydsl.jpa.JPAExpressions import com.querydsl.jpa.impl.JPAQueryFactory import kr.co.vividnext.sodalive.can.use.CanUsage import kr.co.vividnext.sodalive.can.use.QUseCan.useCan @@ -383,6 +384,9 @@ class LiveRoomQueryRepositoryImpl( } override fun getLatestFinishedLive(offset: Long): List { + val liveRoom = liveRoom + val subLiveRoom = QLiveRoom.liveRoom + return queryFactory .select( QGetLatestFinishedLiveQueryResponse( @@ -396,7 +400,13 @@ class LiveRoomQueryRepositoryImpl( .from(liveRoom) .innerJoin(liveRoom.member, member) .where( - liveRoom.isActive.isFalse + liveRoom.updatedAt + .eq( + JPAExpressions.select(subLiveRoom.updatedAt.max()) + .from(subLiveRoom) + .where(subLiveRoom.member.eq(liveRoom.member)) + ) + .and(liveRoom.isActive.isFalse) .and(liveRoom.channelName.isNotNull) ) .groupBy(member.id)