ormlite - 返品項目w /最大ID(または値)
質問
ormlite w / androidを使用しています。オブジェクトのID値が最も高い値のIDです。
任意のフィールドの任意のフィールドの単一オブジェクトのw / min / min値を要求するためにこれを一般化したいと思います。これを行うためのベストプラクティスは何ですか?
私は生のクエリを実行できることを認識していますが、誰にもジャンプする他の方法はありますか?私はiOS上のCoreDataでFetchRequestsを実行するときに述語に似たものを想像しています。
解決
あなたの答えは@ベンに見えますが、私は後代のためにいくつかの追加情報を与えると思いました:
-
queryForFirst
が単一の結果を返すことがわかっている場合は、limit(1)
を使用できます。qBuilder.orderby("my_field_column_name", false); qBuilder.limit(1L); MyEntity maxEntity = myEntityDao.queryForFirst(qBuilder.prepare());
-
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]
から異なるオブジェクトを取得するでしょう。
所属していません StackOverflow