zoukankan      html  css  js  c++  java
  • 使用greenDAO遇到的问题

    前一阵花时间学习了一下greenDAO的使用,这两天已经把项目中之前使用的sqlite数据库操作改用greenDAO,但是在改动的过程中还是出了一些问题,问题主要集中在主键上,下面整理了一下在改动过程中遇到的问题。

    • 调用AbstractDAO中update()时抛出RuntimeException

    Cannot update entity without key - was it inserted before?

    • 抛出该异常的原因:在调用update()时传入的主键为 null
    • 该问题的应用环境:表中满足某条件的记录不重复,有则改之,无则’加冕’。
    • 解决问题的方法:查询表中满足条件的记录,取其id赋值给新记录。

    部分代码块

    • 数据操作封装
    public void cache(Cache cache) {
        String address = cache.getAccessAddress();
        QueryBuilder<Cache> builder = mCacheManager.queryBuilder().
        where(Properties.AccessAddress.eq(address));
    
        List<Cache> list = builder.list();
        if (null == list || list.isEmpty()) {
            // 未缓存
            mCacheManager.insert(cache);
        } else {
            // 新记录的id传进来为null
            Cache entity = list.get(0);
            cache.setId(entity.getId());
            mCacheManager.update(cache);
        }
    }
  • 相关阅读:
    定时器的实现
    派遣函数
    IRP的同步
    duilib基本流程
    驱动程序的同步处理
    WFP在包含fwpmu.h头的时候出错
    自己写的驱动用CreateFile打开时错误码返回1的问题
    Windows内核函数
    16_会话技术_Session
    15_会话技术_Cookie
  • 原文地址:https://www.cnblogs.com/magics/p/6654853.html
Copyright © 2011-2022 走看看