sql >> Base de Datos >  >> RDS >> PostgreSQL

Informe de Jasper:no se pudo obtener el valor del campo 'x' de la clase 'org.postgresql.util.PGmoney'

Esta es una de las varias razones por las que el money de PostgreSQL type fue obsoleto y debe evitarse . Extrañamente versiones más recientes de la misma documentación no muestran la advertencia de obsolescencia pero yo y otros No estoy de acuerdo con eso y creo que su uso debe desaconsejarse.

Si es posible, cambie su esquema para usar numeric en cambio, como numeric(17,2) si solo desea almacenar centavos de números enteros, o algo más preciso para valores intermedios. Tendrás una pesadilla trabajando con money en HQL, hasta el punto en que incluso BigDecimal de Java class (usualmente usado para mapear numeric campos) es mejor a pesar de la sintaxis terriblemente torpe de la aritmética itsw.

Yo haría un ALTER TABLE blah ALTER COLUMN blahcol TYPE numeric(17,2) USING ( regexp_replace(blahcol::text, '[$,]', '', 'g')::numeric ); y olvida el money tipo existiera si yo fuera tú.