时,此方法将返回true。
我需要编写一个使用日期作为ID的应用,我必须能够通过比较日期
来更新@Entity
data class DailyCount(@PrimaryKey
var date:DateTime,
var summ: Double = 0.0)
这是dao
@Query("update DailyCount set summ = :sum where date = :today")
fun updateCash(today: DateTime, sum: Double)
我想这样做:
@Entity
data class DailyCount(@PrimaryKey
var date:Date,//JodaTime containing only date
var summ: Double = 0.0)
或喜欢:
@Query("update DailyCount set summ = :sum where date.today = :dateArg.today")
fun updateCash(dateArg: DateTime, sum: Double)
房间不知道如何将主字段DateTime
保存到数据库中。
您需要编写一个类型逆变器。
public class TypeConverter {
private static Gson gson = new Gson();
@TypeConverter
public static DateTime stringToDate(String data) {
Type type = new TypeToken<DateTime>() {
}.getType();
return gson.fromJson(data, type);
}
@TypeConverter
public static String dateToString(DateTime dateTime) {
return gson.toJson(dateTime);
}
}
然后注释您的主键
@PrimaryKey
@TypeConverters(TypeConverter::class.java)
var date:DateTime
我需要编写此查询:
@Query("update DailyCount set summ = :sum where date between :startTimeOfDay and :endTimeOfDay")
fun updateCash(startTimeOfDay: DateTime, endTimeOfDay: DateTime, sum: Double)
我在这里给了一个开始和结束时间的范围。当我想在今天的ID中设置信息