如何使用 ObjectBox 存储货币值 (BigDecimal)?
How can I use ObjectBox to store money values (BigDecimal)?
为了表示货币价值,我使用 BigDecimal 因为准确性(双精度类型会导致错误)。那么,如何在 ObjectBox 中存储 BigDecimal 值,我应该使用什么类型的字段或转换器?
默认不支持 BigDecimal,因此您必须创建 Converter。这是一个例子:
public class BigDecimalConverter implements PropertyConverter<BigDecimal, String> {
@Override
public BigDecimal convertToEntityProperty(String databaseValue) {
return new BigDecimal(databaseValue);
}
@Override
public String convertToDatabaseValue(BigDecimal entityProperty) {
return entityProperty.toString();
}
}
@Entity
public class BigDecimalEntity {
@Convert(dbType = String.class, converter = BigDecimalConverter.class)
private BigDecimal decimal;
public BigDecimal getDecimal() {
return decimal;
}
public void setDecimal(BigDecimal decimal) {
this.decimal = decimal;
}
}
为了表示货币价值,我使用 BigDecimal 因为准确性(双精度类型会导致错误)。那么,如何在 ObjectBox 中存储 BigDecimal 值,我应该使用什么类型的字段或转换器?
默认不支持 BigDecimal,因此您必须创建 Converter。这是一个例子:
public class BigDecimalConverter implements PropertyConverter<BigDecimal, String> {
@Override
public BigDecimal convertToEntityProperty(String databaseValue) {
return new BigDecimal(databaseValue);
}
@Override
public String convertToDatabaseValue(BigDecimal entityProperty) {
return entityProperty.toString();
}
}
@Entity
public class BigDecimalEntity {
@Convert(dbType = String.class, converter = BigDecimalConverter.class)
private BigDecimal decimal;
public BigDecimal getDecimal() {
return decimal;
}
public void setDecimal(BigDecimal decimal) {
this.decimal = decimal;
}
}