Android Roomで同じオブジェクトの複数のインスタンスを結合するにはどうすればよいですか?

ヤー

注:直接結合クエリでは再現されないパフォーマンスの問題があったため、リレーションを使用できません。

追加target userしてからgroup user対応するまで

LEFT JOIN chat_user ON chat_user.chat_user_id = message_item.messages_target_user
LEFT JOIN chat_user ON chat_user.chat_user_id = message_item.messages_from_group_user

それはうまくいきました。しかし、追加した後、クエリでこれらのプレフィックスをマップする方法がわかりません。

class ReadMessageEntity(
  @Embedded
  var message: MessageEntity,
  @Embedded
  var block: BlockEntity?,
  @Embedded
  var user: ChatUserRelationEntity,
  @Embedded(prefix = "target_user_")
  var targetUser: ChatUserEntity?,
  @Embedded(prefix = "from_group_user_")
  var fromGroupUser: ChatUserEntity?
)

これは私が照会しようとしているものです:

  @Transaction
  @Query("""
    SELECT * FROM message_item 
    LEFT JOIN block_item ON block_item.block_message_id = message_item.message_local_id
    LEFT JOIN chat_user_relation ON chat_user_relation.chat_user_id = message_item.message_user_id
    LEFT JOIN chat_user ON chat_user.chat_user_id = message_item.messages_target_user
    LEFT JOIN chat_user ON chat_user.chat_user_id = message_item.messages_from_group_user
    WHERE message_item.message_chat_id = :chatId
    ORDER BY message_created_at ASC
    """)
  fun getMessagesByChat(chatId: String): Single<List<ReadMessageEntity>>

エラー:

e:エラー:クエリに問題があります:[SQLITE_ERROR] SQLエラーまたはデータベースがありません(あいまいな列名:main.chat_user.chat_user_id)

ヤー

前述のように、Moayad.AlMoghrabiはテーブルエイリアスを使用する必要があります。だから私はに名前を変更LEFT JOIN chat_userしましたLEFT JOIN chat_user target_userchat-userとtarget_userの間にASがないことに注意してください。(私の間違いは私がそれをそこに置こうとしたことでした)。chat_userのプレフィックスは正しく機能するため、プレフィックスの動作はまだ謎ですが、ChatUserRelationEntityにプレフィックスを設定すると、不明な列エラーが発生します。

SELECT * FROM message_item 
LEFT JOIN block_item
    ON block_item.block_message_id = message_item.message_local_id
LEFT JOIN chat_user_relation 
    ON chat_user_relation.chat_user_relation_chat_user_id = message_item.message_user_id
    AND chat_user_relation.chat_user_relation_chat_user_chat_id = :chatId
LEFT JOIN chat_user target_user 
    ON target_user.chat_user_id = message_item.messages_target_user
LEFT JOIN chat_user from_group_user 
    ON from_group_user.chat_user_id = message_item.messages_from_group_user
WHERE message_item.message_chat_id = :chatId
ORDER BY message_created_at ASC

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

イベントの実行時に動的なAndroidパスオブジェクトを作成するにはどうすればよいですか?

分類Dev

Androidデータバインディングでオブジェクトのメソッドを使用するにはどうすればよいですか?

分類Dev

Androidのスクロールビューエントリに多くのオブジェクトを配置するにはどうすればよいですか?

分類Dev

Java Androidで独自のオブジェクトを使用してifステートメントを作成するにはどうすればよいですか?

分類Dev

android / javaの同じグループの一部であるネストされたJSONオブジェクトから独立してデータを取得するにはどうすればよいですか?(本文のより明確な/詳細)

分類Dev

複数のjsonオブジェクトのデータをAndroidのサーバーに送信するにはどうすればよいですか?

分類Dev

Dagger2 androidでViewModelのコンストラクターインジェクションを使用するにはどうすればよいですか?

分類Dev

Android Studioでオブジェクトのインスタンス化をオートコンプリートするにはどうすればよいですか?

分類Dev

オブジェクトの連結2配列リストがAndroidでrxを使用する場合、同じIDのオブジェクトを削除するにはどのような方法がありますか?

分類Dev

Androidでボタンオブジェクトのドローアブルを有効/無効にするにはどうすればよいですか?

分類Dev

Androidの同じアクティビティで2つのVolleyリクエストを使用する場合のnullポインタ例外を修正するにはどうすればよいですか?

分類Dev

AndroidとiOSのクライアントとサーバー間でJavaオブジェクトを送信するにはどうすればよいですか?

分類Dev

AndroidのレイアウトXMLでオブジェクトにアニメーションを添付するにはどうすればよいですか?

分類Dev

Androidのオブジェクトボックスデータベースにオブジェクトのリストを挿入するにはどうすればよいですか?ルームデータベースのように

分類Dev

Android-onResumeのonCreateでインスタンス化されたViewオブジェクトにアクセスするにはどうすればよいですか?

分類Dev

オブジェクトがクラスのリストのいずれかのインスタンスであるかどうかを確認します(Android)

分類Dev

AndroidプロジェクトでカスタムJavaコンパイラ引数を設定するにはどうすればよいですか?

分類Dev

Android Studioにインストールするデフォルトのプロジェクトを設定するにはどうすればよいですか?

分類Dev

Java / Android:Adapterクラスを使用して、20個のオブジェクトの配列からGridViewに12個のオブジェクトをランダムに生成するにはどうすればよいですか?

分類Dev

Androidで同時に複数のボタンをクリックしないようにするにはどうすればよいですか?

分類Dev

Androidのクラウドファイヤーストアからコレクション内のオブジェクトのリストを取得するにはどうすればよいですか?

分類Dev

Android-Kotlinでコンストラクター値を使用せずにリポジトリのオブジェクトを作成するにはどうすればよいですか?

分類Dev

Androidのアニメーションの移動遷移でオブジェクトの方向を変更するにはどうすればよいですか?

分類Dev

RXJava / Androidでオブジェクトのリストのフィールドを変更するにはどうすればよいですか

分類Dev

Androidでオブジェクトのリストをパーセル可能にするにはどうすればよいですか?

分類Dev

この種のオブジェクトをAndroidアプリケーションからJsonに投稿するにはどうすればよいですか?

分類Dev

Android-Firebaseから挿入順にオブジェクトのリストを取得するにはどうすればよいですか?

分類Dev

Androidでオブジェクトタイプの設定を取得するにはどうすればよいですか?

分類Dev

Androidでタブウィジェットインジケーターの高さを設定するにはどうすればよいですか?

Related 関連記事

  1. 1

    イベントの実行時に動的なAndroidパスオブジェクトを作成するにはどうすればよいですか?

  2. 2

    Androidデータバインディングでオブジェクトのメソッドを使用するにはどうすればよいですか?

  3. 3

    Androidのスクロールビューエントリに多くのオブジェクトを配置するにはどうすればよいですか?

  4. 4

    Java Androidで独自のオブジェクトを使用してifステートメントを作成するにはどうすればよいですか?

  5. 5

    android / javaの同じグループの一部であるネストされたJSONオブジェクトから独立してデータを取得するにはどうすればよいですか?(本文のより明確な/詳細)

  6. 6

    複数のjsonオブジェクトのデータをAndroidのサーバーに送信するにはどうすればよいですか?

  7. 7

    Dagger2 androidでViewModelのコンストラクターインジェクションを使用するにはどうすればよいですか?

  8. 8

    Android Studioでオブジェクトのインスタンス化をオートコンプリートするにはどうすればよいですか?

  9. 9

    オブジェクトの連結2配列リストがAndroidでrxを使用する場合、同じIDのオブジェクトを削除するにはどのような方法がありますか?

  10. 10

    Androidでボタンオブジェクトのドローアブルを有効/無効にするにはどうすればよいですか?

  11. 11

    Androidの同じアクティビティで2つのVolleyリクエストを使用する場合のnullポインタ例外を修正するにはどうすればよいですか?

  12. 12

    AndroidとiOSのクライアントとサーバー間でJavaオブジェクトを送信するにはどうすればよいですか?

  13. 13

    AndroidのレイアウトXMLでオブジェクトにアニメーションを添付するにはどうすればよいですか?

  14. 14

    Androidのオブジェクトボックスデータベースにオブジェクトのリストを挿入するにはどうすればよいですか?ルームデータベースのように

  15. 15

    Android-onResumeのonCreateでインスタンス化されたViewオブジェクトにアクセスするにはどうすればよいですか?

  16. 16

    オブジェクトがクラスのリストのいずれかのインスタンスであるかどうかを確認します(Android)

  17. 17

    AndroidプロジェクトでカスタムJavaコンパイラ引数を設定するにはどうすればよいですか?

  18. 18

    Android Studioにインストールするデフォルトのプロジェクトを設定するにはどうすればよいですか?

  19. 19

    Java / Android:Adapterクラスを使用して、20個のオブジェクトの配列からGridViewに12個のオブジェクトをランダムに生成するにはどうすればよいですか?

  20. 20

    Androidで同時に複数のボタンをクリックしないようにするにはどうすればよいですか?

  21. 21

    Androidのクラウドファイヤーストアからコレクション内のオブジェクトのリストを取得するにはどうすればよいですか?

  22. 22

    Android-Kotlinでコンストラクター値を使用せずにリポジトリのオブジェクトを作成するにはどうすればよいですか?

  23. 23

    Androidのアニメーションの移動遷移でオブジェクトの方向を変更するにはどうすればよいですか?

  24. 24

    RXJava / Androidでオブジェクトのリストのフィールドを変更するにはどうすればよいですか

  25. 25

    Androidでオブジェクトのリストをパーセル可能にするにはどうすればよいですか?

  26. 26

    この種のオブジェクトをAndroidアプリケーションからJsonに投稿するにはどうすればよいですか?

  27. 27

    Android-Firebaseから挿入順にオブジェクトのリストを取得するにはどうすればよいですか?

  28. 28

    Androidでオブジェクトタイプの設定を取得するにはどうすればよいですか?

  29. 29

    Androidでタブウィジェットインジケーターの高さを設定するにはどうすればよいですか?

ホットタグ

アーカイブ