web-dev-qa-db-ja.com

明確な結果でレルムデータベースからクエリを実行する方法java

Realmオブジェクトクラスがあり、そこに大量のデータを格納しているので、String uid;フィールド。 uid名を取得したいのですが、同じuid名では1回だけです。たとえば

uid

AA

AA

BB

CC

DD

BB

BB

AAだけを取得したいのですが、

BB、

CC、

DD。

一度だけ。レルムのドキュメントを調べましたが、何も見つかりませんでした。

答えてくれてありがとう。

11
Mucahit

更新:

個別のエントリを取得するには、distinct()を使用できます。

// Returns the set of users that all have a different name
RealmResults<User> users = realm.where(User.class).distinct("name");

注:.distinctは、インデックスが付けられたフィールド(@Indexまたは@PrimaryKey)でのみ機能します。子オブジェクトのプロパティでは機能しません。

この方法の詳細については、公式ドキュメントをご覧ください。 https://realm.io/docs/Java/latest/api/io/realm/Realm.html#distinct-Java.lang.Class-Java.lang.String-] [1]

28
Isaac Kingston

レルムで明確に作業するには、以下の手順を使用してください

レルムのバージョンをレルム:1.2.0に更新します。古いバージョンでは、distinctが正しく機能していないためです。

個別に適用する変数に@Indexプロパティを追加します

このようにクエリを実行します

RealmResult<Example> realmReault =realm.where(Example.class).distinct("uid");

プロジェクトにレルムの依存関係を含めるには、build.gradle(Project)の行の下に追加できます

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.2.1'

        classpath "io.realm:realm-gradle-plugin:1.2.0"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

上記のコードはテストされ、正しく機能しています

0