BT

Java用のLINQ現る

| 作者: Rob Thornton フォローする 0 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2007年9月22日. 推定読書時間: 2 分 |
Anders Norasは先週JavaZoneにおいて、Java用のLINQと名付けられたQuaereライブラリを発表した(source)。Quaere(サイト・英語)はIterableとQueryableインターフェースを実装している、あらゆるストラクチャに対応するクエリ機能を備えたDSLである。

Nnoras氏はQuaereの機能を下記のように述べている。

  • Iterableインターフェースを実装したデータ、もしくは配列ストラクチャに対するクエリ実行能力
  • 通常のJavaコードを用いたクエリ言語を可能にさせる内部DSL(静的インポートと流動性インターフェースに基づいている)quaere.jar file(とその依存物)にリファレンスを追加するのみでプロセッシングとコード生成のステップは必要とされない
  • リストリクション、セレクション、プロジェクション、セット、パーティショニング、グルーピング、オーダリング、数量化、集合化、コンバージョンオペレーターを含む膨大な数のクエリオペレータ
  • lambda表現へのサポート
  • 匿名のクラスをダイナミックに定義しインスタンス化する機能
  • Java 1.5とそれ以降のバージョンに対応する新たなキーワード

下記は製品リストから製品名リストの受け取りの一例である。

List products = Arrays.asList(Product.getAllProducts()); 
Iterable productNames =
 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にそのためのプロジェクトを発足(サイト・英語)した。

原文はこちらです:http://www.infoq.com/news/2007/09/quaere-linq

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT