GreenDao高级用法:
1.类内部有List
2.类内部有类
3.类内部有List<类>
1.类内部有List
复制该类到项目内
import org.greenrobot.greendao.converter.PropertyConverter;
import java.util.Arrays;
import java.util.List;
public class StringConverter implements PropertyConverter<List<String>, String>{
@Override
public List<String> convertToEntityProperty(String databaseValue) {
if (databaseValue == null) {
return null;
}
else {
List<String> list = Arrays.asList(databaseValue.split(","));
return list;
}
}
@Override
public String convertToDatabaseValue(List<String> entityProperty) {
if(entityProperty==null){
return null;
}
else{
StringBuilder sb= new StringBuilder();
for(String link:entityProperty){
sb.append(link);
sb.append(",");
}
return sb.toString();
}
}
}
定义处这样写
@Convert(columnType = String.class, converter = StringConverter.class)
public List<String> list;
存储数据时请自己调用setXxx()方法
获取数据时请调用getXxx()方法,方法内会自动去查询数据
2.类内部有类
定义一个Id(名字随意起,不冲突就行)
public Long authorId;
定义处这样写(注意此类不要写成内部类,会执行失败,应该放在一个单独的文件中,也需要Id和@Entity标识)
@ToOne(joinProperty = "authorId")
public AuthorBean author;
存储数据时请自己调用setXxx()方法
获取数据时请调用getXxx()方法,方法内会自动去查询数据
3.类内部有List<类>
在内部类的内部定义一个Id(不要写成内部类)
public Long chapterId;
定义处这样写
@ToMany(referencedJoinProperty = "chapterId")
public List<ChapterBean> chapter;
存储数据时,需要遍历'chapter'集合,并给每一个子元素的chapterId设置为外部类的主键id,然后通过.chapterBeanDao.insert(chapterBean)来添加到数据库中
获取数据时请调用getXxx()方法,方法内会自动去查询数据
对Kotlin或KMP感兴趣的同学可以进Q群 101786950
如果这篇文章对您有帮助的话
可以扫码请我喝瓶饮料或咖啡(如果对什么比较感兴趣可以在备注里写出来)