dotjorgeu

Untitled

Apr 23rd, 2012
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 4.03 KB | None | 0 0
  1. private void deleteOrphanedAssets(){
  2.         DotConnect dc = new DotConnect();
  3.         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))";
  4.         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))";
  5.         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))";
  6.         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))";
  7.         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))";
  8.         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))";
  9.        
  10.         // http://jira.dotmarketing.net/browse/DOTCMS-7387
  11.         // we need to delete permissions on inodes we will delete
  12.         String deletePermRefInodesToDelete=
  13.                 "delete from permission_reference\n"+
  14.                         "       where exists \n"+
  15.                         "       (select * from inode where (permission_reference.asset_id=inode.inode OR permission_reference.reference_id=inode.inode) AND\n"+
  16.                         "         ((identifier not in(select inode from identifier)) \n"+
  17.                         "         OR (type = 'identifier' and inode not in (SELECT inode FROM identifier))\n"+
  18.                         "         OR (type in('htmlpage','links','contentlet','containers','template','file_asset') and identifier is null))\n"+
  19.                         "       )";
  20.         String deletePermInodesToDelete=
  21.                 "delete from permission\n"+
  22.                 "       where exists \n"+
  23.                 "       (select * from inode where permission.inode_id=inode.inode AND\n"+
  24.                 "         ((identifier not in(select inode from identifier)) \n"+
  25.                 "         OR (type = 'identifier' and inode not in (SELECT inode FROM identifier))\n"+
  26.                 "         OR (type in('htmlpage','links','contentlet','containers','template','file_asset') and identifier is null))\n"+
  27.                 "       )";
  28.        
  29.         String deleteInodes = "DELETE from inode where (identifier not in(select inode from identifier)) OR (type = 'identifier' and inode not in (SELECT inode FROM identifier))" +
  30.                               "OR (type in('htmlpage','links','contentlet','containers','template','file_asset') and identifier is null)";
  31.         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)) " +
  32.                             "OR (type in('htmlpage','links','contentlet','containers','template','file_asset') and identifier is null))";
  33.         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)) " +
  34.                              "OR (type in('htmlpage','links','contentlet','containers','template','file_asset') and identifier is null))";
  35.         try{
  36.             dc.executeStatement(deleteFileAsset);
  37.             dc.executeStatement(deleteContentlet);
  38.             dc.executeStatement(deleteContainers);
  39.             dc.executeStatement(deleteTemplate);
  40.             dc.executeStatement(deleteHTMLPage);
  41.             dc.executeStatement(deleteLinks);
  42.             dc.executeStatement(deletePermRefInodesToDelete);
  43.             dc.executeStatement(deletePermInodesToDelete);
  44.             dc.executeStatement(deleteInodes);
  45.             dc.executeStatement(deleteTree);
  46.             dc.executeStatement(deleteTree1);
  47.         }catch (SQLException e) {
  48.             Logger.error(this,e.getMessage());
  49.             e.printStackTrace();
  50.         }
  51.     }
Advertisement
Add Comment
Please, Sign In to add comment