CRUD
术语
- get(id):表示通过id获取一个完整的对象
- QueryUtil:基于拼接的查询工具,包含一些更具体的工具
- PageUtil:分页工具
- CriteriaUtil:条件拼接工具,包含一些字段,以供db层解析
- 如:connection(and/or)、key、condition(>,<,!=)、value
- OrderByUtil:排序工具
- Params:自定义的附加参数
query(queryUtil):表示根据查询工具查询返回的对象list
更新
在更新中如果需要查询数据,应该使用get(id)方法,或者专用的query方法;应该杜绝使用query(queryUtil)
在设计之初,如果要使用缓存,get(id)接口应该指定一个缓存版还有一个不缓存版以作区分
- 如果是中途添加缓存,则应该将接口复制一份再做缓存版
- 原因就是第二条
- 如果是中途添加缓存,则应该将接口复制一份再做缓存版
在涉及update、insert、delete的业务时,数据源绝对不可以是从缓存中查询的
延迟队列
在涉及更新操作时,务必校验那个时刻对象的属性是否还能满足更新的要求
ThreadLocal
-
软删除
删除,意味着某些数据是不再被需要的 软删除的设计初衷是为了防止数据在误删的时候得以恢复
从设计角度讲,被标记为删除的行不应该被业务代码重新标记为未删除
- 应该用其他的方式来描述”可用“这种状态,比如”有效”、”无效”