一. greendao无法生成dao文件
1):使用了kotlin实体类:
greendao 无法生成dao文件,反复clean,重启都不行。检查配置是正确的。
项目原来是java工程,准备转移kotlin,操作过程遇到这个问题。
采用koltin编写。按照配置greendao的方法配置好后。然后编译,奇怪的事情发生了。DaoMaster DaoSession无法生成。 why?????
百度,谷歌,结果没搜出可行的解决方案。然后开始翻阅greendao源码,包括github链接。绕来绕去也没发现可行的方案。
最后去greendao招解决方案。结果发现一句话:
这里写图片描述
只支持java 的实体类
日哦~~
koltin写实体类的不支持
解决方案就出了!放弃koltin写greendao实体类。 ennnnn~ 希望greendao开发团队早日做兼容吧
2):估计很少人遇到。
项目接手了一个别人的应用,后来我应该改了生成的路径,我应该是看到了旧的dao文件。所以一直看不到新类的生成。
dao文件每个类只对应一个(他原来吧一个管理插入删除的类也命名为dao,只是包不同,不建议这么命名)。DaoMaster DaoSession **dao 这三个,都是唯一的。
clean 重启都不对,正确的build / make project 就会生成啦
3):重命名后greendao无法生成dao文件
生成后,通过As重命名,是无法生成dao文件的
正确的做法:
1)把bean文件中的所有生成的部分全部删掉,回到初始的状态。
- 用As重命名
3) 这个时候就能够重新生成了。tips:可能还有些地方还没有修改过来的,简单修改就可以了。
二.greenDao,插入数据无覆盖效果
微信图片_20200303104309.png使用insertOrReplace方法,结果无覆盖效果。
@Entity
public class PlayCount {
@Id
public String videoId;
@Generated(hash = 1571366185)
public PlayCount(String videoId) {
this.videoId = videoId;
}
@Generated(hash = 34874876)
public PlayCount() {
}
public String getVideoId() {
return this.videoId;
}
public void setVideoId(String videoId) {
this.videoId = videoId;
}
}
添加@Id好了。
网友评论