批量删除

阅读更多
java 代码
 
  1. public void deleteAllBugInTestReport(Integer testReportId) throws DaoException {  
  2.         try {  
  3.             Session session = HibernateUtil.getSession();  
  4.               
  5.             StringBuilder selectBugRelation = new StringBuilder("select br.id from BugRelation as br, Bug as b ").append(  
  6.                         "where ((br.fromId=b.bugId) or (br.toId=b.bugId)) ").append(  
  7.                             "and b.testReportId = ").append(testReportId).append(")");  
  8.             Debug.logInfo(selectBugRelation.toString(),module);   
  9.               
  10.             doDelete(session, session.createQuery(selectBugRelation.toString()).list(), "delete BugRelation where ");  
  11.               
  12.               
  13.             StringBuilder selectBugFieldHistory = new StringBuilder("select bfh.id from BugFieldHistory as bfh, BugHistory as bh, Bug as b ").append(  
  14.                         "where bfh.bugHistoryId = bh.id and bh.bugId = b.bugId ").append(  
  15.                                 " and b.testReportId = ").append(testReportId).append(")");  
  16.             Debug.logInfo(selectBugFieldHistory.toString(), module);  
  17.               
  18.             doDelete(session, session.createQuery(selectBugFieldHistory.toString()).list(), "delete BugFieldHistory where ");  
  19.   
  20.             StringBuilder selectBugHistory = new StringBuilder(  
  21.                     "select bh.id from BugHistory as bh, Bug as b ").append(  
  22.                         "where bh.bugId = b.bugId and b.testReportId = ").append(testReportId).append(")");  
  23.             Debug.logInfo(selectBugHistory.toString(), module);  
  24.             doDelete(session, session.createQuery(selectBugHistory.toString()).list(), "delete BugHistory where ");  
  25.   
  26.             StringBuilder deleteBug = new StringBuilder(  
  27.                     "delete Bug where testReportId = ").append(testReportId);  
  28.             Debug.logInfo(deleteBug.toString(), module);  
  29.             session.createQuery(deleteBug.toString()).executeUpdate();  
  30.         } catch (Exception e) {  
  31.             throw new DaoException(e);  
  32.         }         
  33.     }  

    上面就是批量删除的操作。实体工具真的不行。在性能上有要求的地方,我觉得还真的不如用JDBC好。

你可能感兴趣的:(JDBC)