로컬 DB로 저장한 내용을 앱의 상태에 맞는 카테고리로 정렬되도록 하려면 CASE WHEN ~ THEN ~
구문을 사용하면 됩니다.
저 같은 경우는 카테고리 코드, 정렬 코드를 사용해서 카테고리 코드에 따른 오름차순, 내림차순 정렬을 하도록 다음과 같이 쿼리를 구성했습니다.
@Query("""
SELECT * FROM product ORDER BY
CASE WHEN :categoryCode = 0 AND :orderCode = 0 THEN time END ASC,
CASE WHEN :categoryCode = 1 AND :orderCode = 0 THEN rate END ASC,
CASE WHEN :categoryCode = 0 AND :orderCode = 1 THEN time END DESC,
CASE WHEN :categoryCode = 1 AND :orderCode = 1 THEN rate END DESC
""")
fun getSavedHotelList(categoryCode: Int, orderCode: Int): Flow<List<Product>>