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