最近做项目时,用到了级联删除功能。需求是:删除指定文件夹下面的所有文件。以前学习的时候,用纯java写过这样的业务,网上也有很多类似的源码,在这里就不扯了。
当设计到数据库时,我们需要换一个思路(当然有的数据库比如ORACLE有PLSQL,navicat工具也有此级联删除和更新功能,但有时无法满足需求)。
在数据库中填一个字段“super_ids”,将其父类和他本身的id用逗号隔开(“,”),set到super_ids中,具体代码如下:
String cate_ids = "";
t_category categoty = (t_category) oc.findObjById(category_id, t_category.class);
while (ChkTools.isNotNull(categoty)) {
cate_ids += categoty.get_id() + ",";
categoty = (t_category) oc.findObjById(categoty.getSuper_id(),
t_category.class);
}
field.setCate_ids(cate_ids);
oc.saveObj(field);