レルムテーブルからデータをクエリする際に、非常に奇妙な動作が発生しています。RealmResultsクエリで部分的な結果が返される - Android
例
私はOrderItem
と呼ばれるオブジェクトは次のように定義されています
public class OrderItem extends RealmObject{
@PrimaryKey
@Index
private long id;
//the rest of the fields here
//then getters and setters as usual
}
問題は非常に予測不可能です。場合によっては:
RealmResults<OrderItem> items = realm.where(OrderItem.class)
.equalTo("order_id", order_id)
.findAllSorted("id");
が不完全な結果、特に1行を返します。
このような部分的な結果がどのように返されるのか正確には分かりません。私は上記のテーブルに何行あるかは関係ありません!しばらく前に
NOTE
私は値をインクリメントしようとしたときだったどのように悪いアイデアを学んだまで、私は私のテーブルの主キーとしてString
タイプを使用していました。だから私は長い型に変わった。私は上記のクエリから部分的な結果を得ています!
本当にありがとうございます。この問題を緩和するのに役立つアイデアやヒント。
ありがとうございます!
Eenvincible!
矛盾した結果が得られたクエリをどのスレッドで実行していますか?それは 'doInBackground()'なのでしょうか?一貫性のないクエリのコードを表示します。 – EpicPandaForce
対応するgithubの問題https://github.com/realm/realm-java/issues/5153 –
サービス(バックグラウンドサービスを正確に使用する)を使用して、serviceHandler内でコードを実行します。 – Eenvincible