squeryl - 将bigDecimal保存到数据库

时间:2013-06-30 21:48:10

标签: scala scala-2.10 squeryl

我正在使用Scala的squeryl(版本0.9.6-RC1和scala 2.10)并尝试将我的模型序列化为H2数据库。

我的模型类有一些字符串字段和一些BigDecimal类型(scala.BigDecimal)。

我使用模型类中的Schema.create创建数据库模式,不幸的是,squeryl总是为BigDecimal创建太小的字段,这使得列的值太长了 "MULTPZ DECIMAL(20, 16) NOT NULL": "1000000.0000000000000000 (23)";

这是squeryl中的某种错误吗?原始值为"1000000.0000",并正确解析为BigDecimal。

我已经测试了上述情况,我创建了一个单独的表,字段定义为"DECIMAL(20, 20)",在这种情况下,squeryl尝试插入"1000000.00000000000000000000 (27)"

1 个答案:

答案 0 :(得分:3)

最简单的解决方法是覆盖架构中的defaultSizeOfBigDecimal方法。它返回一个元组,其中包含保存BigDecimal的数字列的长度和比例。您还可以使用@Column注释在每个字段的基础上设置这些值。