質問

ormlite w / androidを使用しています。オブジェクトのID値が最も高い値のIDです。

任意のフィールドの任意のフィールドの単一オブジェクトのw / min / min値を要求するためにこれを一般化したいと思います。これを行うためのベストプラクティスは何ですか?

私は生のクエリを実行できることを認識していますが、誰にもジャンプする他の方法はありますか?私はiOS上のCoreDataでFetchRequestsを実行するときに述語に似たものを想像しています。

役に立ちましたか?

解決

あなたの答えは@ベンに見えますが、私は後代のためにいくつかの追加情報を与えると思いました:

  1. queryForFirstが単一の結果を返すことがわかっている場合は、limit(1)を使用できます。

    qBuilder.orderby("my_field_column_name", false);
    qBuilder.limit(1L);
    MyEntity maxEntity = myEntityDao.queryForFirst(qBuilder.prepare());
    

  2. RAWクエリも機能します。それはより多くのオブジェクトとチェックを含みますが、注文をする必要がないので、テーブルのサイズが大きい場合は安くなります。

    qBuilder.selectRaw("MAX(my_field_column_name)");
    GenericRawResults<String[]> results =
        myEntityDao.queryRaw(qBuilder.prepareStatementString());
    String[] result = results.getResults().next();
    int max = Integer.parseInt(result[0]);
    

    明らかに、あなたの列が別の型だった場合は、オブジェクトに応じて適切なタイプに変換する必要があることがあなたがresult[0]から異なるオブジェクトを取得するでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top