| | |
| | | * 获取删除表记录SQL |
| | | */ |
| | | public String getDelTabsSql(List<MetaEntity> metas) { |
| | | List<String> list = getTabDeletes(metas, metas.get(0).getTab()); |
| | | addCascadDeletes(list); |
| | | addAttachDeletes(list); |
| | | |
| | | return StringHelper.join(list, ";"); |
| | | } |
| | | |
| | | private List<String> getTabDeletes(List<MetaEntity> metas, String tab) { |
| | | List<String> list = new ArrayList<>(); |
| | | String tab = metas.get(0).getTab(); |
| | | |
| | | List<String> pids = new ArrayList<>(); |
| | | for (MetaEntity me : metas) { |
| | |
| | | list.add(String.format("delete from %s where parentid in (%s)", tab, StringHelper.join(pids, ","))); |
| | | } |
| | | |
| | | // 关联删除 |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 添加级联删除 |
| | | */ |
| | | private void addCascadDeletes(List<String> list) { |
| | | int i = 0, c = list.size(); |
| | | while (i < c) { |
| | | String str = list.get(i); |
| | |
| | | |
| | | i++; |
| | | } |
| | | } |
| | | |
| | | return StringHelper.join(list, ";"); |
| | | /** |
| | | * 添加附件删除 |
| | | */ |
| | | private void addAttachDeletes(List<String> list) { |
| | | int i = 0, c = list.size(); |
| | | while (i < c) { |
| | | String str = list.get(i); |
| | | String tab = str.substring("delete from ".length(), str.indexOf(" where ")); |
| | | String select = str.replace("delete ", "select eventid "); |
| | | |
| | | list.add(String.format("delete from lf.sys_attach where tab='%s' and tab_guid in (%s)", tab, select)); |
| | | |
| | | i++; |
| | | } |
| | | } |
| | | |
| | | /** |