前一阵花时间学习了一下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);
}
}

最新文章

  1. windows 64位 安装apache+php+mysql
  2. poj1700
  3. myeclipse启动tomcat报错cannot find a free socket for debugger
  4. Linux:命令执行顺序控制与管道
  5. java实现数据库连接池
  6. RecyclerView的基本创建
  7. 【BZOJ 1033】 [ZJOI2008]杀蚂蚁antbuster
  8. .NET SDK和下载
  9. 截断WM_SYSCOMMAND的SC_CLOSE命令(VC与Delphi双版本)
  10. AngularJs学习(1)
  11. java selenium webdriver实战 页面元素定位
  12. 使用JAXP进行XM解析(基于DOM)
  13. thinkphp3.2开发网页实现第三方登录
  14. 【链表】Bzoj1098[POI2007]办公楼biu
  15. 大数据与 AI 生态中的开源技术总结
  16. SQL数据库一些系统语法含义
  17. BZOJ1390 CEOI2008 Fences 凸包、Floyd最小环/DP
  18. C#中字符串大小比较函数--CompareTo与Compare方法(需要完善补充)
  19. macbook 下hadoop伪分布式安装
  20. IIS ashx

热门文章

  1. javascript 获取指定范围随机数
  2. leetCode 72.Edit Distance (编辑距离) 解题思路和方法
  3. leetCode(46):Kth Smallest Element in a BST
  4. CDOJ 876 爱管闲事 DP
  5. android 极细线
  6. xBIM 基础04 日志操作
  7. sas与mysql连接方法
  8. jQuery学习(七)——使用JQ完成下拉列表左右选择
  9. Mysql语法:navicat for mysql 添加注释
  10. VP相关