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 - JSONJAXBContext jersey 1.x 到 2.x 的迁移

java - 发送 Gmail 错误

java - 在Java中以ManyToOne关系持久化实体

java - Hibernate、PostgreSQL 9 的 JPA NamedNativeQuery 语法错误

java - 连接失败的 JPQL createNativeQuery

java - 连接数据库的连接过多

Java 6 ECDHE 密码套件支持

java - 禁止在 JTextPane 中选择范围

spring-mvc - 使用 Set JPA 维护 @ElementCollection 中的顺序

java - JPA 获取子类的集合