Nnoras氏はQuaereの機能を下記のように述べている。
- Iterableインターフェースを実装したデータ、もしくは配列ストラクチャに対するクエリ実行能力
- 通常のJavaコードを用いたクエリ言語を可能にさせる内部DSL(静的インポートと流動性インターフェースに基づいている)quaere.jar file(とその依存物)にリファレンスを追加するのみでプロセッシングとコード生成のステップは必要とされない
- リストリクション、セレクション、プロジェクション、セット、パーティショニング、グルーピング、オーダリング、数量化、集合化、コンバージョンオペレーターを含む膨大な数のクエリオペレータ
- lambda表現へのサポート
- 匿名のクラスをダイナミックに定義しインスタンス化する機能
- Java 1.5とそれ以降のバージョンに対応する新たなキーワード
下記は製品リストから製品名リストの受け取りの一例である。
Listproducts = Arrays.asList(Product.getAllProducts());
IterableproductNames =
from("p").in(products).
select("p.getProductName()");
Quaereは現在一つの実装(オブジェクト用)しか備えていないが、部分的にHibernate用の実装が行われている。Hibernate実装はデモにおいて2,3時間しか費やさなかったように迅速に進行するべきであることをAnders氏は述べている。
何人かはjoSQLが類似したAPIであることを言及(source)している。Anders氏自身もその類似点を提示している(source)が、いくつかの相違点も指摘している。
- Quaereは”ビジネス問題”を用いるとより良い結合性をもたらす。
- Quaereクエリは更にコンパクトでタイプの安全性を備えている。
- Quaereは新たなクエリエンジンのシームレスな追加を許容する拡張可能な言語である。
最後に、Noras氏はQuaereに関するよくある疑問(source)に答えるためCodehausにそのためのプロジェクトを発足(サイト・英語)した。