到目前为止存储在房间数据库我一直在为每个类使用类型转换器。像这样:
@SerializedName("sidebar")
@Expose
@TypeConverters(SidebarConverter.class)
private Sidebar sidebar;
@SerializedName("splash")
@Expose
@TypeConverters(SplashConverter.class)
private Splash splash;
@SerializedName("overview")
@Expose
@TypeConverters(OverviewConverter.class)
private Overview overview;
@SerializedName("home")
@Expose
@TypeConverters(HomeConverter.class)
private Home home;
@SerializedName("portfolio")
@Expose
@TypeConverters(PortfolioConverter.class)
private Portfolio portfolio;
@SerializedName("team")
@Expose
@TypeConverters(TeamConverter.class)
private Team team;
我想知道是否有更方便的使用方法TypeConverter
单独在数据库中。
您可以在单个类中定义所有转换器,如下所示:
public class DateTypeConverter {
@TypeConverter
public static Date toDate(Long value) {
return value == null ? null : new Date(value);
}
@TypeConverter
public static Long toLong(Date value) {
return value == null ? null : value.getTime();
}
}
然后在您的房间数据库上设置此转换器@TypeConverter
像这样的注释可以在任何全局上工作@Entity
类。你不需要定义@TypeConverter
单独在实体类中
@Database(entities = {Product.class}, version = 1)
@TypeConverters({DateTypeConverter.class})
public abstract class MyDatabase extends RoomDatabase {
public abstract ProductDao productDao();
}
请注意,我们添加了一个名为的新注释@TypeConverters
在我们的数据库定义中,以便引用我们可以拥有的不同转换器(您可以用逗号分隔并添加其他转换器)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)