Kevin Bortis wrote:
On 5/4/07, *Kristian Waagan* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
I'm sure someone will give you the full story, but I believe you might
have to serialize your objects yourself before you store them into the
database as BLOB/VARCHAR FOR BIT DATA (depending on the maximum size of
your objects, or your own preferences).
I thought that when using JAVA_OBJECT as a data type, Java Objects are
automatically serialized and deserialized in the JDBC layer. Is this false?
From the "JDBC API Tutorial and Reference, Third Edition", 50.4.7 page
1077:
"The type JAVA_OBJECT is used by a database whose type system has been
extended so that it can store Java objects directly. The JAVA_OBJECT
value may be stored as a serialized Java object, or it may be stored in
some vendor-specific format."
and
"For DBMSs that support them, values of type JAVA_OBJECT are stored in a
database table using the method PreparedStatement.setObject."
These sentences indicate that a database is not required to support
JAVA_OBJECTs, but it may do so. I do not know of a meta-data call to
determine this (anyone?).
Further, I have not consulted the JDBC 4.0 spec or its compliance
requirements on this issue.
Further, the JAVA SE 6 (JDBC 4.0) API documentation states that the
setObject(int/String,Object,int) should throw a
SQLFeatureNotSupportedException if the specified type is not supported.
I will check if this is true for Derby and file a Jira issue if it is not.
--
Kristian
I think the JAVA_OBJECT type in Derby has been disabled, but could it
have been available in earlier Cloudscape releases?
I see comments in the code suggesting the support for JAVA_OBJECT is
"half-baked", so it would be nice if someone with knowledge of earlier
times could enlighten the rest of us :)
Would be nice to know if the feature is disabled.
sincerely
Kevin