방 라이브러리로 내 sqlite 데이터베이스를 변경하려고합니다. 나는 왼쪽 join 쿼리와 혼동하지 않는다.android left with join room
나는 sqlite로 구현했지만, 어떻게 같은 withh 방을 얻을 수 있을지 모르겠다?
첫 번째 테이블 : 알림
db.execSQL("CREATE TABLE IF NOT EXISTS $TABLE_NAME ($COLUMN_ID INTEGER PRIMARY KEY, $ICON TEXT, $TITLE INTEGER," +
" $DATE INTEGER, $TYPE INTEGER,$URL TEXT, $MESSAGE INTEGER, FOREIGN KEY($TITLE) REFERENCES ${TableNotificationsTrans.getTableName(this)}(id)," +
"FOREIGN KEY($MESSAGE) REFERENCES ${TableNotificationsTrans.getTableName(this)}(id))")
두 번째 테이블 : 나는에 통지를 저장하고 내가 뭐하는 거지입니다 Notification_Trans
db.execSQL("CREATE TABLE IF NOT EXISTS $TABLE_NAME ($COLUMN_ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, $COLUMN_EN TEXT, $COLUMN_GU TEXT, $COLUMN_HI TEXT)")
여기
내 테이블 작성입니다 알림 테이블이지만 그 이름과 설명은 notification_trans에 특정 언어로 저장됩니다.쿼리
DatabaseHelper.database!!.rawQuery("SELECT A.$COLUMN_ID, A.$ICON, N.${language.toLowerCase()} $TITLE, A.$DATE, A.$TYPE, A.$URL, M.${language.toLowerCase()} $MESSAGE FROM $TABLE_NAME A LEFT JOIN NotificationsTrans N ON A.$TITLE = N.id LEFT JOIN NotificationsTrans M ON A.$MESSAGE = M.id ORDER BY $DATE DESC LIMIT $pageNum*10, 10", null)
질문
How can I achieve same with room?
편집을 달성하기
내 어플은 특정 언어로 알림 제목을 얻고 다국어 응용 프로그램입니다 , l 힌디어 또는 구자라트 어. 알림 테이블에 알림 세부 사항을 저장하고 있습니다. 제목은 notification_trans입니다.
NotificationTrans에는 id가 영어, 힌디어, 구자라트 인 열이 있습니다.
사용자가 구자라트를 요청하면 notificationTrans의 구자라트 어로 알림 제목을 검색하고 있습니다.
나는 sqlite에서 그렇게 할 수있다.
그러나 지금 나는 방
정적 쿼리를 사용하는 경우 SQLite에서 사용하는 것과 똑같은 Room에서 사용합니다. 귀하의 경우, 문자열 보간법을 사용하여 쿼리를 생성합니다.이 경우 방에서 도움을받을 수 없습니다. – CommonsWare