1

単純なクエリで wso2 データ サービスの問題に直面しています。

予想されるクエリ: 複数の値を持つ IN 句を使用したい。これは私のサンプルクエリです:

SELECT ORGANIZATION_ID, ORGANIZATION_NAME FROM ORGANIZATION WHERE ORGANIZATION_ID IN (?)
ORDER BY ORGANIZATION_NAME ASC

エラーの取得: 「1,2,3」値を使用して Web サービスを試行すると、javax.xml.stream.XMLStreamException エラーが発生します。

上記のクエリを WSO2 DSS でどのように記述できますか?

その上でアドバイスをください。

ありがとう、エバ

4

1 に答える 1

4

要件を満たすために効果的に使用できるタイプ「ARRAY」のサンプル入力パラメーターを含む次のデータ サービス クエリ構成を参照してください。

<query id="setSalaryForEmployeesQuery" useConfig="default">
          <sql>update Employees set salary=:salary where employeeNumber in (:employeeNumbers)</sql>
          <param name="salary" ordinal="1" paramType="SCALAR" sqlType="DOUBLE" type="IN"/>
          <param name="employeeNumbers" ordinal="2" paramType="ARRAY" sqlType="INTEGER" type="IN"/>
</query>

そこで、「employeeNumbers」という名前の入力マッピング構成を参照すると、基本的に、クエリで言及されているのと同じ要件に対応します。

この機能を試すには、各データ サービス (他のサービス タイプと同様) で提供される "tryIt" 機能を使用できます。前述の構成に対応するデータ サービス要求の形式は、以下のようになります。

<p:setSalaryForEmployees xmlns:p="http://ws.wso2.org/dataservice/samples/rdbms_sample">
              <!--Exactly 1 occurrence-->
              <xs:salary xmlns:xs="http://ws.wso2.org/dataservice/samples/rdbms_sample">1000</xs:salary>
              <!--1 or more occurrences-->
              <xs:employeeNumbers xmlns:xs="http://ws.wso2.org/dataservice/samples/rdbms_sample">1011</xs:employeeNumbers>
              <xs:employeeNumbers xmlns:xs="http://ws.wso2.org/dataservice/samples/rdbms_sample">1022</xs:employeeNumbers>
</p:setSalaryForEmployees>

上記の構成スニペットを含む完全なデータ サービス構成は、DSS 製品アーカイブにある「DSS_HOME/sample/dbs/rdbms/RDBMSSample.dbs」にあります。

于 2013-06-24T08:48:41.327 に答える