添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.
Hi,

I've got a double which I'm trying to save to a postgres numeric column.

The value I'm trying to save is 151.33160591125 488 , and I've verified that this is in fact the argument being received by Hibernates internals pre-insert.

However the value in the database post insert is 151.33160591125 5 , ie it's been rounded to 12dp.

I know my column is of the right scale, as it's an unrestricted numeric column and the following...
Code:
update tbl set col=151.33160591125488

...has the desired effect.

org.hibernate.dialect.PostgreSQLDialect:
Code:
registerColumnType( Types.DOUBLE, "float8" );
registerColumnType( Types.NUMERIC, "numeric($p, $s)" );

Code:
select cast (151.33160591125488 as float8);
=151.331605911255

therefore the default behavior for double is incorrect, and i need to get hibernate to use the numeric type before I'll get the expected behavior, but
Code:
<property type="numeric" />

doesn't work, as "numeric" is not a hibernate type.

How do I get hibernate to save doubles properly?