美文网首页
greendao 问题和坑的总结

greendao 问题和坑的总结

作者: 朱_c713 | 来源:发表于2019-12-11 17:15 被阅读0次

    一. 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文件中的所有生成的部分全部删掉,回到初始的状态。

    1. 用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好了。

    相关文章

      网友评论

          本文标题:greendao 问题和坑的总结

          本文链接:https://www.haomeiwen.com/subject/kgcagctx.html