ブレイズを使用してJavaバックエンドに接続するFlexアプリケーションがあります。リモーティングを使用して、APIを呼び出し、Oracleデータベースのテーブルで(従来のJDBCクラスを使用して)SELECTステートメントを実行します。
テーブルには2つの列があります。
PRODUCT_CODE of type NVARCHAR2(32) and
DEMAND of type NUMBER(10, 0)
私のJavaAPIは次のとおりです。
public List<?> getQueryResult(String query) {
Connection conn = DriverManager.getConnection(connStr, userName, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
ArrayList<?> result = new ArrayList<?>();
while(rs.next()) {
Object[] itemArray = new Object[2];
itemArray[0] = rs.getObject(1);
itemArray[1] = rs.getObject(2);
result.add(itemArray);
}
return result;
}
Flex側には、このリモート操作の結果イベントのハンドラーがあります。
private function onResult(e:ResultEvent) : void {
var result:ArrayCollection = (e.result as ArrayCollection);
}
不思議なことに、DEMAND列に対応する値は自動的に文字列に変換されます(バックエンドでは、これらがBigDecimalであることがわかるようにデバッグしました)
助言がありますか?