java - 如何使用 JPQL 获取 blob 字段的长度?

标签 java jpa jpql

我有一个 JPA 实体,其中有一个 blob 字段。我想编写一个 JPQL 查询来获取实体 blob 的长度(我不想将 blob 加载到内存中)。

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

SELECT length(blob_field) FROM my_table WHERE id = ?

如何使用 JPQL 获取 blob 的长度?

最佳答案

你不能。 JPQL 长度函数计算字符串中的字符数,而 blob 中的字节数不符合该定义。

但是,您可以对作为 CLOB(字符/字符数组或 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;

关于java - 如何使用 JPQL 获取 blob 字段的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702510/

相关文章:

java - FetchType = Lazy 且可选 = false 在 JPA 中不起作用

hibernate - 如何在JPA/JPQL中过滤集合?

jpa - JPQL 我们不能 CONCAT(String, Integer) EclipseLink?

java - 延迟初始化异常 : load lazy attribute from a session different from the original one in Hibernate

java - 使用组合键映射/访问实体

带有嵌套 SELECT 的 JPQL JOINS

java - Android 日历 API 与日历提供程序 API

java - 方法中的使用 View 和模型

java - Enum StandardOpenOption 的哪些组合是被禁止的?

java - 如何在 QAF 中使用自定义元数据过滤测试用例?