-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一个update的问题 #647
Comments
所有情况下,update返回值,修改计数为1,是正常的 |
从你给出的代码里面,我看不出来你使用的update的方式,因为你的docBean并没有实例化,所以我不知道你是在什么对象上调用的docBean.folder = -1 |
查询代码 enum class DocOrFolderBeanOrder {
NameAsc,
NameDesc,
CreateTimeAsc,
CreateTimeDesc,
UpdateTimeAsc,
UpdateTimeDesc,
}
/**
* 查找主页文档列表
* 输入folderId则只查找对应文件夹文档列表
*/
fun findMainDocOrFolderBean(
docOrFolderBeanOrder: DocOrFolderBeanOrder? = null,
folderId: Long = -1
): List<DocOrFolderBean> {
val whereSQL =
if (folderId < 0) "(isfolder = 0 AND folderid = -1) OR isfolder = 1"
else "isfolder = 0 AND folderid = $folderId"
return if (docOrFolderBeanOrder == null) {
LitePal.where(whereSQL).find()
} else
LitePal.where(whereSQL).order(
when (docOrFolderBeanOrder) {
DocOrFolderBeanOrder.NameAsc -> "name ASC"
DocOrFolderBeanOrder.NameDesc -> "name DESC"
DocOrFolderBeanOrder.CreateTimeAsc -> "createtime ASC"
DocOrFolderBeanOrder.CreateTimeDesc -> "createtime DESC"
DocOrFolderBeanOrder.UpdateTimeAsc -> "updatetime ASC"
DocOrFolderBeanOrder.UpdateTimeDesc -> "updatetime DESC"
}
).find()
} 调用 val docOrFolderBeanList = findMainDocOrFolderBean(folderId = 2)
val docBean: DocOrFolderBean = docOrFolderBeanList[0]
//Log----docBean.id=1
//Log----docBean=DocOrFolderBean(name=新文档, folderId=0, createTime=Thu Aug 20 09:47:13 GMT+08:00 2020, updateTime=Thu Aug 20 09:47:13 GMT+08:00 2020, isFolder=false)
docBean.folderId = -1
docBean.update(docBean.id) //之后再次查询 数据库内此条记录folderId仍为0
//如果将folderId改为其他值(-3,-2,0,1,2),则正常update docOrFolderBeanList 其中任意一条将 folderId 改为 -1 后 docBean.update(docBean.id)均无实际效果 |
这个问题是因为,你的folderId的默认值是-1,update方法会忽略所有值是默认值的修改,至于原因可以参考这个issue #32 你的这种使用场景下其实已经很简单了,因为你都已经把docBean查询出来了,对象查询出来的情况下要更新数据,只要重新save一遍就行了,关于这部分的用法在主页readme里面就有说明 https://github.com/guolindev/LitePal#4-update-data |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
一个实体类
其对象
运行环境
The text was updated successfully, but these errors were encountered: