【发布时间】:2013-04-29 23:18:37
【问题描述】:
我们使用 H2 数据库进行测试,但是当我使用 Hibernate 将 BigDecimal 值存储到其中然后将其加载回来时,该值被截断到小数点后两位:
字段定义如下所示
@Column(name = "Rate", nullable = true)
private BigDecimal rate;
所以 1.456 被截断为 1.46。
我不知道预先的精度(每个实体都不同),所以我无法在注释上定义它们。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
我认为 Hibernate 正在生成模式,对吧?
-
如果创建的列没有精度和比例,则 H2 不会截断。因此,要么使用精度/比例创建列,要么使用 Hibernate,或者您的应用程序截断该值。但是我不能说它是哪一个。
-
能否通过在H2数据库中执行SQL语句
SCRIPT得到这个数据库的schema? -
我认为这将是创建脚本(谢谢),很快就会验证它
-
曾经找到答案吗?我们也遇到了这个问题。
标签: java database hibernate jpa h2