setscale multiply example declarar grails gorm

multiply - Cómo cambiar la precisión de BigDecimal en Grails



bigdecimal setscale (2)

La restricción de escala le permite controlar esto:

... BigDecimal myNum static constraints = { myNum(scale: 6) } ...

http://grails.org/doc/latest/ref/Constraints/scale.html

Estoy usando BigDecimal en dominios como tipo. Si verifico el esquema generado en la base de datos (mySql), el tipo de columna es decimal (19,2) . Puedo cambiarlo usando restricciones en la clase de dominio ( como se describe en la documentación de Grails ) como:

static constraints = { salary (scale: 3, maxSize:32) }

Mi pregunta es: ¿cómo definir la escala y maxSize para todos los campos de tipo BigDecimal en mi aplicación?

Ya he intentado definirlo en config.groovy así

grails.gorm.default.constraints = { ''*''(scale:10, size:32, class:BigDecimal) }

o así:

grails.gorm.default.mapping = { ''*''(scale:10, size:32, class:BigDecimal) }

Lamentablemente no funciona.

Grails vesion es 2.2.2.


La mejor forma que encontré para hacer esto es lo siguiente:

En su Config.groovy usted define lo siguiente:

grails.gorm.default.constraints = { myCustomScale( scale: 10, max: 9999999999999999999999.99999999 ) }

En su objeto de dominio agrega la siguiente contracción:

static constraints = { myField shared: ''myCustomScale'' }

Puede usar este contraint para todos sus campos BigDecimal donde sea necesario. Si necesita ajustar la escala (digamos para un cliente específico) puede controlar esto al cambiarlo en la configuración.

Espero que esto ayude