데이터베이스에서 읽은 파일 이름 목록과 그 크기를 표시하고 싶지만 BLOB 값을 읽으면 쿼리가 매우 느립니다. 그것을 읽지 않고 방울의 크기를 어떻게 계산할 수 있습니까?BLOB의 내용을 읽지 않고 BLOB의 크기를 얻는 방법은 무엇입니까?
EclipseLink를 사용하고 있습니다.
데이터베이스에서 읽은 파일 이름 목록과 그 크기를 표시하고 싶지만 BLOB 값을 읽으면 쿼리가 매우 느립니다. 그것을 읽지 않고 방울의 크기를 어떻게 계산할 수 있습니까?BLOB의 내용을 읽지 않고 BLOB의 크기를 얻는 방법은 무엇입니까?
EclipseLink를 사용하고 있습니다.
JPQL에는 그러한 기능이 없습니다. 또한 네이티브 쿼리로 수행되는 방법은 아마도 데이터베이스에 따라 달라집니다. 적어도 MySQL과 오라클 다음 작품 :
SELECT LENGTH(blob_field) FROM table_name;
당신이 JPQL를 사용하는 경우, LENGTH
기능은 문자 유형으로 제한됩니다, 그래서 BLOB
적용 할 수 없습니다. 물론 그것을 지속시키는 퍼시스턴스 프로 바이더 확장이있을 수 있습니다. , 이럴
+1. JPA에서는 네이티브 쿼리를 피할 수 없습니다. –
JPQL는 길이를 지원하므로이 또한 JPQL에서 작동해야
이Select LENGTH(o.blobField) from MyObject o
그렇지 않으면 당신은 항상 JPQL에서 FUNC를 사용할 수,
Select FUNC('LENGTH', o.blobField) from MyObject o
미코 아래에 무엇을 제안 당신이 할 수있는
,하지만 난 별도의 필드에 BLOB 크기를 저장하는 것이 더 좋습니다. –