I use morphia to save an object, that one of its fields is BigDecimal.
@Entity class MyObject { BigDecimal myField; }
And I'm trying to save it in db:
Morphia morphia = new Morphia(); Datastore datastore = morphia.createDatastore(new MongoClient("localhost"), "myStore"); morphia.getMapper().getConverters().addConverter(new BigDecimalConverter()); MyObject foo = new MyObject (); foo.setMyField(new BigDecimal("1.1111111111111111")); datastore.save(foo);
But I get the following exception:
Caused by: java.lang.RuntimeException: java.lang.NumberFormatException: Conversion to Decimal128 would require inexact rounding of 1.111111111111111160454356650006957352161407470703125 at org.mongodb.morphia.mapping.ValueMapper.toDBObject(ValueMapper.java:29) at org.mongodb.morphia.mapping.Mapper.writeMappedField(Mapper.java:867) at org.mongodb.morphia.mapping.Mapper.toDBObject(Mapper.java:982) ... 7 more
source share