You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@tuscany.apache.org by Ashok Shah <as...@gmail.com> on 2009/06/17 04:08:18 UTC

Problem modifying data with DAS service for Oracle database.

Hello,
I am trying some basic examples for Tuscany SDO DAS implementation.
Below is my configuration file:
<?xml version="1.0" encoding="ASCII"?>
 <Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd">

 <ConnectionInfo>
  <ConnectionProperties
  driverClass="oracle.jdbc.driver.OracleDriver"
  databaseURL="jdbc:oracle:thin:@xxx:xxx:xxx"
  userName="xxxxx" password="xxxxx" />
 </ConnectionInfo>


  <Command name="AllTablea" SQL="select * from TABLEA" kind="Select" >
  <ResultDescriptor columnName="COLUMNA" tableName="TABLEA"
  columnType="commonj.sdo.Decimal"/>
  <ResultDescriptor columnName="COLUMNB" tableName="TABLEA"
  columnType="commonj.sdo.String"/>
  <ResultDescriptor columnName="COLUMNC" tableName="TABLEA"
  columnType="commonj.sdo.String"/>
  </Command>

  <Table tableName="TABLEA">
  <Column columnName="COLUMNA" primaryKey="true"/>
  <Column columnName="COLUMNB" />
  <Column columnName="COLUMBC" />
  </Table>
</Config>
When I try to fetch the rows, it returns without any error, but when i try
to modify any data it throws an exception.
The code that modifies the data:
public final void changeColumnb() {
  Command readAll = this.getDAS().getCommand("AllTablea");
  DataObject root = readAll.executeQuery();
  DataObject firstCustomer = root.getDataObject("TABLEA[1]");
  System.out.println(firstCustomer.getString("COLUMNB"));
  firstCustomer.setString("COLUMNB", "BlueBerry");
  das.applyChanges(root);
  }
The Table description for TABLEA:
COLUMNA --> Type NUMBER(10)
COLUMNB --> Type VARCHAR(30)
COLUMNC --> Type VARCHAR(30)
The Error:
  [java] Exception in thread "main" java.lang.RuntimeException: Not a valid
SDO Type org.apache.t
uscany.sdo.impl.DataTypeImpl@111b910 (name: Decimal) (instanceClassName:
java.math.BigDecimal) (seri
alizable: true)
  [java] at
org.apache.tuscany.das.rdb.impl.SDODataTypeHelper.columnTypeForSDOType(SDODataTyp
eHelper.java:105)
  [java] at
org.apache.tuscany.das.rdb.generator.impl.InsertGenerator.getInsertCommand(Insert
Generator.java:116)
  [java] at
org.apache.tuscany.das.rdb.impl.ChangeFactory.getCreateCommand(ChangeFactory.java
:102)
  [java] at
org.apache.tuscany.das.rdb.impl.ChangeFactory.createInsertOperation(ChangeFactory
.java:81)
  [java] at
org.apache.tuscany.das.rdb.impl.ChangeSummarizer.createChange(ChangeSummarizer.ja
va:96)
  [java] at
org.apache.tuscany.das.rdb.impl.ChangeSummarizer.loadChanges(ChangeSummarizer.jav
a:80)
  [java] at
org.apache.tuscany.das.rdb.impl.ApplyChangesCommandImpl.execute(ApplyChangesComma
ndImpl.java:64)
  [java] at
org.apache.tuscany.das.rdb.impl.DASImpl.applyChanges(DASImpl.java:310)
  [java] at com.syscon.sdo.Main.changeColumnb(Unknown Source)
  [java] at com.syscon.sdo.Main.main(Unknown Source)
  [java] Java Result: 1
Thanks,
Ashok.