My concern is that it seems too low-level, accessing DataNode
directly (hence you have to manage connection state and all that).
But there is another more fundamental problem of a Blob becoming
invalid when the connection that generated it is closed.
So I wonder if instead of mapping a column directly as a Blob, we
should implement our own mapping primitive (BlobHolder?), that can re-
read the Blob as many times as requested. The other piece is a
callback interface that is provided with the regular Blob instance
guaranteed to be in the valid state (i.e. inside a Cayenne
transaction). A callback can read the stream, and do whatever with it
(like pushing data to HttpResponse):
interface (or class) BlobHolder {
void readBlob(BlobCallback callback);
}
interface BlobCallback {
// this is called within transaction span and the Blob is
guaranteed to be valid
void blobRead(Blob);
}
We can use a BlobFault similar to what you wrote as a way to
initialize BlobHolder with an object qualifier (so that it knows how
to fetch itself).
What do you think?
Andrus
On Nov 20, 2006, at 6:21 PM, Tore Halset (JIRA) wrote:
> [ http://issues.apache.org/cayenne/browse/CAY-316?page=all ]
>
> Tore Halset updated CAY-316:
> ----------------------------
>
> Attachment: BlobFaultType.java
>
>> stream support for blob/clob
>> ----------------------------
>>
>> Key: CAY-316
>> URL: http://issues.apache.org/cayenne/browse/CAY-316
>> Project: Cayenne
>> Type: New Feature
>
>> Components: Cayenne Core Library
>> Versions: 1.2 [STABLE]
>> Reporter: Tore Halset
>> Assignee: Andrus Adamchik
>> Priority: Minor
>> Fix For: UNDEFINED FUTURE
>> Attachments: BlobFault.java, BlobFaultType.java
>>
>> It would be nice if cayenne would support for streaming blob/clob.
>> It should at least be possible to prevent caching of blobs.
>
> --
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the
> administrators:
> http://issues.apache.org/cayenne/secure/Administrators.jspa
> -
> For more information on JIRA, see:
> http://www.atlassian.com/software/jira
>
>
This archive was generated by hypermail 2.0.0 : Tue Nov 21 2006 - 23:20:53 EST