テーブルとSybaseでSPROCを設定している:BeanPropertySqlParameterSourceとダブルス
テーブルTESTTAB(Fフロート)を作成
挿入TESTTAB値(@f)
として浮遊@fのproc insert_testtabを作成しますそして、ダブル
class TestObj { Double getF() { return 12.34; } }
使用SimpleJdbcCall & BeanPropertySqlParameterSourceを保持しているJavaオブジェクト:
SqlParameterSource params = new BeanPropertySqlParameterSource(new TestObj());
SimpleJdbcCall call = new SimpleJdbcCall(dataSource).withProcedureName("insert_testtab");
call.execute(params);
12.34ではなく、12.0がデータベースに挿入されます。これは、カバーの下にBeanPropertySqlParameterSourceがjava.sql.Types.NUMERICとしてsprocに番号を渡しているように見え、小数点のplaseを切り捨てています。
誰もがこれを説明するのを助けることができますか、これはおそらく春のSybaseコードで問題になっているのでしょうか、あるいは私は間違って何かをやっていますか?
Sybaseのカラムが正しく設定されていますか?私は数値列が整数(または精度0)のためだけに設定されているときに他のDBでこれを見たことがあります – Gandalf