2013-06-26 2 views
0

Я запускаю пример вставки из WSO2 DSS в базу данных Cassandra.SQLSyntaxErrorException: ожидаемый ключ «KEY» должен присутствовать в предложении WHERE для «dept»

Вот мой DSS с конфигурацией вставки базы данных Casandra.

<data name="Cdno"> 
    <config id="insert"> 
     <property name="url">jdbc:cassandra://localhost:9160/employee</property> 
     <property name="driverClassName">org.apache.cassandra.cql.jdbc.CassandraDriver</property> 
    </config> 
    <query id="Insertinto" useConfig="insert"> 
     <sql>INSERT INTO employee.dept(eno,dno) values(?,?)</sql> 
     <result element="Body" rowName="Datalist"> 
     <element column="eno" name="eno" xsdType="integer"/> 
     <element column="dno" name="dno" xsdType="integer"/> 
     </result> 
     <param name="eno" ordinal="1" sqlType="INTEGER"/> 
     <param name="dno" ordinal="2" sqlType="INTEGER"/> 
    </query> 
    <operation name="insertinto"> 
     <call-query href="Insertinto"> 
     <with-param name="eno" query-param="eno"/> 
     <with-param name="dno" query-param="dno"/> 
     </call-query> 
    </operation> 
</data> 

В то время как я вставляя данные DSS попробовать эту услугу Кассандры базы данных, я получаю следующее сообщение об ошибке. Как я могу это достичь.

DS Code: DATABASE_ERROR 
Source Data Service:- 
Name: Cdno 
Location: /Cdno.dbs 
Description: N/A 
Default Namespace: http://ws.wso2.org/dataservice 
Current Request Name: insertinto 
Current Params: {eno=5, dno=6} 
Nested Exception:- 
java.sql.SQLSyntaxErrorException: Expected key 'KEY' to be present in WHERE clause for 'dept' 

    at org.wso2.carbon.dataservices.core.engine.DSOMDataSource.execute(DSOMDataSource.java:105) 
    at org.wso2.carbon.dataservices.core.engine.DSOMDataSource.serialize(DSOMDataSource.java:110) 
    at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:691) 
    at org.apache.axiom.om.impl.util.OMSerializerUtil.serializeChildren(OMSerializerUtil.java:562) 
    at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:875) 
    at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeInternally(SOAPEnvelopeImpl.java:283) 
    at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:245) 
    at org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndConsume(OMSerializableImpl.java:193) 
    at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:74) 
    ... 38 more 
+0

Можете ли вы показать мне схему, которую вы используете для своего датамодели? У меня возникло ощущение, что вы вставляете раздел (строку) без указания первичного ключа для указанного раздела. –

ответ

0

При вставке данных в Кассандре, вы должны передать информацию о ключах также .. Проверьте sample

0

WSO2 генерирует неверный запрос. Я не думаю, что вы можете многое сделать, кроме как сообщить об ошибке.