use*_*946 2 android duplicates greendao
我有一个活动将解析json数据并在活动开始后使用greenDAO更新数据库.它的更新代码如下:
exampleDao.insertOrReplace(exampleObj);
Run Code Online (Sandbox Code Playgroud)
但是当活动返回并恢复时,它将继续插入导致重复数据输入与不同的主键但相同的数据,如何防止重复数据输入?
非常感谢
由于您没有提供有关数据模型的架构或类似信息,因此这个答案只是猜测!
您可能正在使用自动增量主键.
这意味着您的主键可能未包含在JSON数据中,导致主键属性为null.
这告诉greendao这是一个新条目,greendao将插入一个带有新主键的新条目.
尝试先读取对象然后调用insertOrReplace:
Example oldObj;
try {
// Try to find the Example-Object if it is already existing.
oldObj = exampleDao.queryBuilder().where(someCondition).unique();
} catch (Exception ex) {
oldObj = null;
}
if (oldObj == null) {
oldObj = new Example();
}
// update oldObj with the data from JSON
exampleDao.insertOrReplace(oldObj);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6312 次 |
| 最近记录: |