5
Sto cercando di mantenere un BigDecimal in una nuova app grails 2.0, e non si comporta affatto come mi aspetto.Grails 2.0 problemi con persistente BigDecimal
Faccio una nuova applicazione chiamata l2bigdec
e aggiungere questa classe di dominio:
package l2bigdec
class PlayMe {
BigDecimal imStupidOrSomething
static constraints = {
}
}
Poi ho messo questo codice nella bootstrap:
import l2bigdec.*
class BootStrap {
def init = { servletContext ->
def thisThingIHate = new PlayMe(imStupidOrSomething:0.912345).save(failOnError:true)
println thisThingIHate.imStupidOrSomething
PlayMe.withSession{it.clear()}
def getItBack = PlayMe.find{it}
println getItBack.imStupidOrSomething
}
def destroy = {
}
}
che stampa:
0.912345
0.91
Perché non stampa 0,912345 entrambe le volte? Non capisco BigDecimal?
Che cosa succede se io in realtà voglio un BigDecimal e non un galleggiante rotondo e ha bisogno di preservare ogni cifra lo do? Non è più possibile in 2.0? – Mikey
Posso impostare una scala di default più ampia in modo da non dover cercare attraverso il mio progetto l'aggiornamento di ogni BigDecimal? – Mikey
Se stai bersagliando un particolare RDBMS, alcuni hanno tipi di precisione arbitraria che puoi usare ('NUMERIC' in PostgreSQL, per esempio) Altrimenti, non è un modo semplice per cui sono consapevole di conservare cifre arbitrarie. Inoltre, non sono a conoscenza di un singolo punto per impostare la scala predefinita. Se i tuoi nomi di proprietà BigDecimal sono simili tra le classi, potresti usare 'grails.gorm.default.constraints', qui descritto: http://grails.org/doc/latest/ref/Constraints/Usage.html –