2

当我需要在 Order 表中检索一些信息时,jasper 无法从 PGmoney 转换为加倍。我首先搜索了谷歌,但没有结果。

你知道怎么解决吗?

注意:我使用 PostgreSQL 数据库。

4

1 回答 1

4

这是 PostgreSQLmoney类型被弃用并且应该避免的几个原因之一。奇怪的是,相同文档的较新版本没有显示弃用警告,但我和其他人不同意这一点,并认为应该不鼓励使用它。

如果可能,请更改您的架构以使用numeric,例如,numeric(17,2)如果您只想存储整数美分,或者更精确的中间值。在 HQL 中工作时,您将做噩梦money,甚至 Java 的BigDecimal类(通常用于映射numeric字段)都更好,尽管 itw 算术的语法非常笨拙。

如果我是你,我会做一个ALTER TABLE blah ALTER COLUMN blahcol TYPE numeric(17,2) USING ( regexp_replace(blahcol::text, '[$,]', '', 'g')::numeric );并忘记存在的类型。money

于 2012-09-04T13:13:48.887 回答