簡體   English   中英

如何使用JPQL獲取Blob字段的長度?

[英]How to fetch length of a blob field with JPQL?

我有一個JPA實體,其中有一個Blob字段。 我想編寫一個JPQL查詢來獲取實體的Blob的長度(我不想將Blob加載到內存中)。

例如,在Oracle中,我可以使用以下SQL查詢:

SELECT length(blob_field) FROM my_table WHERE id = ?

如何使用JPQL獲取Blob的長度?

你不能。 JPQL長度函數計算字符串中的字符數,而blob中的字節數不適合該定義。

但是,您可以將長度用於保存為CLOB(char / Characters數組或String作為Java類型)的屬性。

//can use length function for CLOBs:
@Lob char[] a;
@Lob Character b;
@Lob String c;

//can not use length function for BLOBs:
@Lob byte[] d;
@Lob Byte e;
@Lob Serializable f;

如果使用EclipseLink,則可以使用JPQL中的“ FUNC”函數來定義數據庫函數。

參見http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Support_for_Native_Database_Functions

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM