如何在不读取BLOB内容的情况下获取BLOB的大小?

时间:2012-03-16 23:09:37

标签: jpa blob eclipselink

我想显示从数据库读取的文件名列表及其大小,但如果我读取blob的值,则查询非常慢。如何在不阅读的情况下计算blob的大小?

我正在使用EclipseLink。

2 个答案:

答案 0 :(得分:1)

JPQL中没有这样的功能。此外,如何使用本机查询可能取决于数据库。至少在MySQL和Oracle之后的工作:

SELECT LENGTH(blob_field) FROM table_name;

如果您使用JPQL,LENGTH函数仅限于字符类型,因此它不适用于BLOB。当然可以有持久性提供程序扩展,这使它可以工作。

答案 1 :(得分:0)

JPQL支持LENGTH,因此这也适用于JPQL,

Select LENGTH(o.blobField) from MyObject o

否则你总是可以在JPQL中使用FUNC,

Select FUNC('LENGTH', o.blobField) from MyObject o