Как получить длину поля BLOB-объекта с помощью JPQL? - PullRequest
1 голос
/ 09 октября 2011

У меня есть объект JPA с полем BLOB-объекта.Я хочу написать JPQL-запрос для извлечения длины большого двоичного объекта (не хочу загружать большой двоичный объект в память).

Например, в Oracle я могу использовать следующий SQL-запрос:

SELECT length(blob_field) FROM my_table WHERE id = ?

Как получить длину BLOB-объекта с помощью JPQL?

Ответы [ 2 ]

0 голосов
/ 11 октября 2011

Если вы используете EclipseLink, вы можете использовать функцию «FUNC» в JPQL для определения функции базы данных.

См., http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Support_for_Native_Database_Functions

0 голосов
/ 09 октября 2011

Вы не можете. Функция длины JPQL подсчитывает количество символов в строке, а количество байтов в двоичном объекте не соответствует этому определению.

Но вы можете использовать длину для атрибутов, которые сохраняются как 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...