テスト DB を Oracle から HSQLDB に移行しようとしています。Oracle には、NUMERIC (x,0) 型のフィールドがあります。私が知っているように、BigDecimal Java 型に関連付けられた NUMERIC 型。そして、テストを実行して DB にレコードを保存しようとすると、次のエラーが発生します。
Caused by: java.sql.SQLException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigDecimal java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigDecimal
タイプを NUMERIC(x,0) から INTEGER に変更すると、正しく機能します。ただし、HSQLDB では INTEGER 型は精度と位取りをサポートしていません。
この問題を解決する方法はありますか?
更新しました:
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source)
at org.javalite.activejdbc.DB.execInsert(DB.java:521)
at org.javalite.activejdbc.Model.insert(Model.java:2096)
at org.javalite.activejdbc.Model.save(Model.java:2008)
at org.javalite.activejdbc.Model.saveIt(Model.java:1935)
at org.javalite.activejdbc.Model.createIt(Model.java:1625)
Caused by: java.sql.SQLException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigDecimal java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigDecimal
... 41 more
私はActiveJDBCを使用しています
public class Employee extends Model {...}
Employee e = (Employee) Employee.createIt("e_type", 1, "name", "Employee")