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.33160591125488, 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.331605911255, 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...
update tbl set col=151.33160591125488
...has the desired effect.
So the culprit has to be either Hibernate or the postgres-JDBC driver.
Ideas?
EDIT:
org.hibernate.dialect.PostgreSQLDialect:
registerColumnType( Types.DOUBLE, "float8" );
and
select cast (151.33160591125488 as float8);
=151.331605911255
therefore the default behavior for double is incorrect, as it doesn't always save the double supplied to it.
Does anyone know how to get hibernate to use the column type "numeric" in postgres?