我有一个带有blob字段的JPA实体。我想编写一个JPQL查询来获取实体blob的长度(我不想将blob加载到内存中)。
例如,在Oracle中,我可以使用以下SQL查询:
SELECT length(blob_field) FROM my_table WHERE id = ?
如何使用JPQL获取blob的长度?
答案 0 :(得分:0)
你做不到。 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;
答案 1 :(得分:0)
如果使用EclipseLink,您可以使用JPQL中的“FUNC”函数来定义数据库函数。