2015-08-19 121 views
0

我在Oracle數據庫中有一個表。如何使用Hibernate動態刪除表的行或刪除表?

我想知道如何刪除它的行,或者如何使用Hibernate,純粹刪除表,但不是通過更改相應的映射類。我的意思是,我想在主要的Java方法中執行映射類的外部。

要讀取數據,我總是使用本機SQL查詢與Hibernate。

寫入數據,我用session.save

但我怎麼做才能從表中刪除數據,或者刪除表?

我看了看Hibernate文檔,但解決的辦法總是涉及通過添加註釋改變被映射的類代碼...

我要像我使用的一個讀取和寫入數據的解決方案:

session.createSQLQuery("..."); 

或者

session.save(...); 

是否有這樣的一個解決方案嗎?

+0

一種解決方法是創建一個數據庫的功能,這是否給你,並把它像一個普通的查詢。 –

回答

0

我發現了另一個#1問題的答案:

Query to delete all rows in a table hibernate

如果從中我想刪除行的表被命名爲MyTable的話,答案是:

在HQL

session.createQuery("delete from MyTable").executeUpdate(); 
在本地SQL

session.createSQLQuery("delete from MyTable").executeUpdate(); 

在發佈這個問題之前,我應該在看起來更長的計算器上,對不起。

0

HQL delete from Xyz將幫助,因爲沒有where條款會影響每一行:

EntityManager em = // .. get EntityManager 
em.getTransaction().begin(); 
em.createQuery("delete from MyTable").executeUpdate(); 
em.getTransaction().commit();