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


Reply via email to