2014-10-03 39 views
1

Hibernate中是否有任何方便且快速的方法,通過提供該行的主Id,我可以檢查數據庫表中是否存在行。檢查表中是否存在具有所提供的主行ID的行

我不想拉對象,因爲一些其他表與它鏈接並加載該記錄對象導致非常沉重的查詢,我不想用於簡單的布爾檢查。所以尋找一種簡單而快速的方法來檢查給定ID是否存在行

回答

0

根據我的觀點,您必須打開數據庫才能執行您的想法。如果你打開了緩存,如果你正在尋找的對象存在於緩存中,Hibernate可能會避免碰到數據庫。但這是你不能確定的事情。該表可能具有該行並且尚未提取到高速緩存。所以有必要擊中數據庫。

一旦你點擊數據庫,你可以做的下一件事就是不要獲取整個對象及其所有相關對象等等。您可以通過多種方式來完成此操作 - (1)僅創建一個只包含所需列的最小實體 - 在這種情況下,可能需要提取id列。 (2)激發一個只提取你需要的列的查詢。

+0

如果我使用Projections.rowCount()來只計數? – Abhi 2014-10-03 10:01:18

+0

這也會起作用。基本上,重點是,你無法避免數據庫命中。並尋找侵入數據庫的方式。您可以檢查幾種方法的時間差異。 – ArunGeorge 2014-10-03 10:26:56

相關問題