Service Registry 3 2005Q4 開発者ガイド

ストアドクエリーの呼び出し

RegistryObjectImpl クラスを拡張した、実装に固有の AdhocQueryImpl クラスを使用すると、Service Registry に保存されているクエリーを呼び出すことができます。Service Registry には、呼び出し可能なデフォルトの AdhocQueryImpl オブジェクトがいくつかあります。最も役に立つのは FindAllMyObjectsGetCallersUser です。

ストアドクエリーを見つける最も簡単な方法は、一意の識別子でクエリーを検索することです。GetCallersUser クエリーには、このクエリー用に定義された標準的な定数がありますので「ストアドクエリーに対する定数」を参照してください。標準的な定数を持たないクエリーは、一意の識別子の文字列値を使用して検索できます。

String queryId = 
    CanonicalConstants.CANONICAL_QUERY_GetCallersUser;
AdhocQueryImpl aq = 
    (AdhocQueryImpl) bqm.getRegistryObject(queryId);

次に、AdhocQuery に関連付けられているクエリー文字列を取得し、その文字列を使用してクエリーを作成して実行します。これには DeclarativeQueryManager のメソッドを使用します。

if (aq != null) {
        int qType = aq.getType();
    String qString = aq.toString();
    Query query = dqm.createQuery(qType, qString);

    BulkResponse br = dqm.executeQuery(query);
    Collection objects = br.getCollection();
    ...

ストアドクエリーの呼び出し: 例

ストアドクエリーの使用例については、<INSTALL>/registry/samples/query-stored/src ディレクトリにある JAXRQueryStored.java を参照してください。このサンプルは、ユーザーを認証し、そのユーザーのレジストリログイン名を返します。

ProcedureJAXRQueryStored サンプルを実行するには

手順
  1. <INSTALL>/registry/samples/query-stored ディレクトリに移動します。

  2. 次のコマンドを入力します。


    asant run