代码拉取完成,页面将自动刷新
关于逻辑删除的功能。
逻辑删除除了修改是否删除字段外,希望能扩展删除人、删除时间等信息。
希望能自定义逻辑删除处理器,并自己设置一些需要同时需要更新的字段。
也可以效仿onInsert和onUpdate,增加一个onDelete来补充需要修改的字段。
现在通过在设置删除字段值的sql语句上增加了其它字段,但这并不是好的方案:
@Override
public String buildLogicDeletedSet(String logicColumn, TableInfo tableInfo, IDialect dialect) {
//扩展一下软删除的sql语句,增加删除时间和删除人。
String sql = dialect.wrap(logicColumn) + EQUALS + prepareValue(getLogicDeletedValue());
if(Arrays.stream(tableInfo.getAllColumns()).anyMatch(x->x.toLowerCase().equals("deleteTime".toLowerCase()))){
sql+=",deleteTime=now(),deleteUserId="+ SpringContextUtil.getBean(AppSession.class).getUserIdOrDefault();
}
return sql;
}
目前可以使用临时的方案是先进行 update 然后再 delete,这两者在同一个事务里进行。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
@Override
public String buildLogicDeletedSet(String logicColumn, TableInfo tableInfo, IDialect dialect) {
//扩展一下软删除的sql语句,增加删除时间和删除人。
String sql = dialect.wrap(logicColumn) + EQUALS + prepareValue(getLogicDeletedValue());
sql += "," + dialect.wrap('deleteTime') + EQUALS + "now()";
sql += "," + dialect.wrap('deleteUserId') + EQUALS + SpringConextUtil.getUserId();
}
就是挺好的方案。
登录 后才可以发表评论