我想显示从数据库读取的文件名列表及其大小,但如果我读取blob的值,则查询非常慢。如何在不阅读的情况下计算blob的大小?
我正在使用EclipseLink。
答案 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