greenDao 上的 DC2type
DC2type on greenDao
我将 GreenDao 用于 Android 应用程序,具有一些规范,例如,我有一个包含姓名、头像、phone 号码等信息的联系人模型...
现在需要从只有一个 phone 号码更改为多个 phone 号码。
而不是创建两个 tables(table 用于数字,table 用于联系人),我真的只需要一个信息就是号码,所以在我的后端联系号码存储在 DC2type 上,(一个 json 数组保存为字符串)。
我们有可能使用 GreenDao 做到这一点吗?
我搜索了一个解决方案或一个 DC2 类型的实现等...但没有找到任何东西
所以我决定自己创建,这就是我所做的:
使用 GreenDao 3 提供的 @Convert 注释:
@Property(nameInDb = "phoneNumbers")
@Convert(converter = PhoneNumbersConverter.class, columnType = String.class)
private List<String> phoneNumbers;
static class PhoneNumbersConverter implements PropertyConverter<List<String>, String> {
@Override
public List<String> convertToEntityProperty(String databaseValue) {
List<String> listOfStrings = new Gson().fromJson(databaseValue,List.class);
return listOfStrings;
}
@Override
public String convertToDatabaseValue(List<String> entityProperty) {
String json = new Gson().toJson(entityProperty);
return json;
}
}
长话短说,我创建了一个 json 数组解析器
感谢我自己帮助我 :D
我将 GreenDao 用于 Android 应用程序,具有一些规范,例如,我有一个包含姓名、头像、phone 号码等信息的联系人模型...
现在需要从只有一个 phone 号码更改为多个 phone 号码。
而不是创建两个 tables(table 用于数字,table 用于联系人),我真的只需要一个信息就是号码,所以在我的后端联系号码存储在 DC2type 上,(一个 json 数组保存为字符串)。
我们有可能使用 GreenDao 做到这一点吗?
我搜索了一个解决方案或一个 DC2 类型的实现等...但没有找到任何东西
所以我决定自己创建,这就是我所做的: 使用 GreenDao 3 提供的 @Convert 注释:
@Property(nameInDb = "phoneNumbers")
@Convert(converter = PhoneNumbersConverter.class, columnType = String.class)
private List<String> phoneNumbers;
static class PhoneNumbersConverter implements PropertyConverter<List<String>, String> {
@Override
public List<String> convertToEntityProperty(String databaseValue) {
List<String> listOfStrings = new Gson().fromJson(databaseValue,List.class);
return listOfStrings;
}
@Override
public String convertToDatabaseValue(List<String> entityProperty) {
String json = new Gson().toJson(entityProperty);
return json;
}
}
长话短说,我创建了一个 json 数组解析器 感谢我自己帮助我 :D