【发布时间】:2017-12-05 10:48:39
【问题描述】:
我有实体:
@Entity(tableName = "products")
public class Product{
@PrimaryKey(autoGenerate = true)
private Long id;
@ColumnInfo(name = "amount")
private BigDecimal amount;
我需要将它存储在 Room DB 中。我无法存储BigDecimal,我创建了转换器:
public static class Converters {
@TypeConverter
public BigDecimal fromString(String value) {
return value == null ? null : new BigDecimal(value);
}
@TypeConverter
public Double amountToString(BigDecimal bigDecimal) {
if (bigDecimal == null) {
return null;
} else {
return bigDecimal.doubleValue();
}
}
}
并添加到列:
@TypeConverters(Converters.class)
@ColumnInfo(name = "amount")
private BigDecimal amount;
现在我将货币存储在双列中。我想要 summ totalcurrency 的方法:
@Query("SELECT SUM(amount) FROM products")
LiveData<Double> totalSum();
但我认为这是不好的方式,因为在转换时我可能会丢失一些值。
我的问题:如何在 ROOM DB 中提取货币?和返回方法
LiveData<BigDecimal> totalSum();
【问题讨论】:
标签: android android-room