Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void deleteOrphanedAssets(){
- DotConnect dc = new DotConnect();
- String deleteFileAsset = "DELETE from file_asset where inode in(select inode from inode where type='file_asset' and (identifier not in(select inode from identifier) or identifier is null))";
- String deleteContentlet = "DELETE from contentlet where inode in(select inode from inode where type='contentlet' and (identifier not in(select inode from identifier) or identifier is null))";
- String deleteContainers = "DELETE from containers where inode in(select inode from inode where type='containers' and (identifier not in(select inode from identifier) or identifier is null))";
- String deleteTemplate = "DELETE from template where inode in(select inode from inode where type='template' and (identifier not in(select inode from identifier) or identifier is null))";
- String deleteHTMLPage = "DELETE from htmlpage where inode in(select inode from inode where type='htmlpage' and (identifier not in(select inode from identifier) or identifier is null))";
- String deleteLinks = "DELETE from links where inode in(select inode from inode where type='links' and (identifier not in(select inode from identifier) or identifier is null))";
- // http://jira.dotmarketing.net/browse/DOTCMS-7387
- // we need to delete permissions on inodes we will delete
- String deletePermRefInodesToDelete=
- "delete from permission_reference\n"+
- " where exists \n"+
- " (select * from inode where (permission_reference.asset_id=inode.inode OR permission_reference.reference_id=inode.inode) AND\n"+
- " ((identifier not in(select inode from identifier)) \n"+
- " OR (type = 'identifier' and inode not in (SELECT inode FROM identifier))\n"+
- " OR (type in('htmlpage','links','contentlet','containers','template','file_asset') and identifier is null))\n"+
- " )";
- String deletePermInodesToDelete=
- "delete from permission\n"+
- " where exists \n"+
- " (select * from inode where permission.inode_id=inode.inode AND\n"+
- " ((identifier not in(select inode from identifier)) \n"+
- " OR (type = 'identifier' and inode not in (SELECT inode FROM identifier))\n"+
- " OR (type in('htmlpage','links','contentlet','containers','template','file_asset') and identifier is null))\n"+
- " )";
- String deleteInodes = "DELETE from inode where (identifier not in(select inode from identifier)) OR (type = 'identifier' and inode not in (SELECT inode FROM identifier))" +
- "OR (type in('htmlpage','links','contentlet','containers','template','file_asset') and identifier is null)";
- String deleteTree = "DELETE from tree where parent in(select inode from inode where (identifier not in(select inode from identifier)) OR (type = 'identifier' and inode not in (SELECT inode FROM identifier)) " +
- "OR (type in('htmlpage','links','contentlet','containers','template','file_asset') and identifier is null))";
- String deleteTree1 = "DELETE from tree where child in(select inode from inode where (identifier not in(select inode from identifier)) OR (type = 'identifier' and inode not in (SELECT inode FROM identifier)) " +
- "OR (type in('htmlpage','links','contentlet','containers','template','file_asset') and identifier is null))";
- try{
- dc.executeStatement(deleteFileAsset);
- dc.executeStatement(deleteContentlet);
- dc.executeStatement(deleteContainers);
- dc.executeStatement(deleteTemplate);
- dc.executeStatement(deleteHTMLPage);
- dc.executeStatement(deleteLinks);
- dc.executeStatement(deletePermRefInodesToDelete);
- dc.executeStatement(deletePermInodesToDelete);
- dc.executeStatement(deleteInodes);
- dc.executeStatement(deleteTree);
- dc.executeStatement(deleteTree1);
- }catch (SQLException e) {
- Logger.error(this,e.getMessage());
- e.printStackTrace();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment