我想顯示從數據庫中讀取的文件名列表及其大小,但是如果我讀取blob的值,則查詢速度非常慢。如何在不閱讀它的情況下計算blob的大小?如何在不讀取BLOB內容的情況下獲取BLOB的大小?
我正在使用EclipseLink。
我想顯示從數據庫中讀取的文件名列表及其大小,但是如果我讀取blob的值,則查詢速度非常慢。如何在不閱讀它的情況下計算blob的大小?如何在不讀取BLOB內容的情況下獲取BLOB的大小?
我正在使用EclipseLink。
JPQL中沒有這樣的設施。另外它如何完成本地查詢可能取決於數據庫。至少在MySQL和Oracle以下工作:
SELECT LENGTH(blob_field) FROM table_name;
如果使用JPQL,LENGTH
功能僅限於字符類型,因此它並不適用於BLOB
。當然,可以使用持久性提供者擴展來使其工作。
+1。原生查詢在JPA中是不可避免的。 – 2012-03-17 19:17:05
JPQL支持長度,所以這也應該在JPQL工作,
Select LENGTH(o.blobField) from MyObject o
否則你總是可以在JPQL使用FUNC,
Select FUNC('LENGTH', o.blobField) from MyObject o
你可以做什麼米克以下建議,但恕我直言,我考慮將blob大小存儲在單獨的字段中是一個更好的主意。 – 2012-03-17 23:49:58