2012-07-13 70 views
-1

這裏刪除查詢方法:異常在創造的EntityManager

public void deleteVotesByReplyID(long replyId) { 
     EntityManager em = getEntityManager(); 
     try { 
      int re = em.createQuery("delete object(o) 
            from Vote as o 
            where o.memberReply.id = '"+replyId+"'" 
           ).executeUpdate();  
     } finally { 
      em.close(); 
     } 
    } 

什麼是錯在上面的查詢? (使用JPA 1.0)

+0

什麼是異常堆棧跟蹤說呢?你使用哪種JPA實現? – 2012-07-13 11:56:40

+0

nothing..only java.lang.IllegalArgumentException:在EntityManager中創建查詢時發生異常。 JPA 1.0 – bews99 2012-07-13 11:59:51

+0

哪個實現? Hibernate,EclipseLink,其他? – 2012-07-13 12:17:30

回答

1

也許是由於這樣的事實,刪除查詢開始

DELETE FROM entity_name [[AS] identification_variable] [WHERE <filter>] 
0

您的查詢可能已經寫成

"DELETE from Vote o where o.memberReply.id = 'someId'" 

同時刪除查詢只能在活動執行交易。您將要

em.getTransaction().begin(); 
query.executeUpdate(); 
em.getTransaction().commit(); 

同時也

catch (Exception e) {em.getTransaction().rollback();}