db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kristian Waagan <Kristian.Waa...@Sun.COM>
Subject Re: Insert JAVA_OBJECT in embedded Derby DB
Date Fri, 04 May 2007 09:41:53 GMT
kab wrote:
> Hi,
> 
> I tried to directly insert a Java object from typ mottrow.MItem to the 
> table ITEMS in my embedded Derby DB. But I got the following error:
> 
> java.sql.SQLException: An attempt was made to get a data value of type 
> 'BLOB' from a data value of type ' mottrow.MItem'
> 
> In the query I used, I had defined the row ITEM to the typ BLOB, because 
> with the typ JAVA_OBJECT I got an error. In the derby documentation I 
> have read that the a JAVA_OBJECT is stored as BLOB in the DB, so I 
> defined it directly as BLOB.
> 
> SQL query used to create table:
> 
> String query = "create table APP.ITEMS (" +
>                     "ID INT NOT NULL PRIMARY KEY GENERATED ALWAYS AS 
> IDENTITY (START WITH 1, INCREMENT BY 1)," +
>                     "ITEM BLOB," +
>                     "LEVEL INT NOT NULL," +
>                     "OWNER VARCHAR(30)," +
>                     "LASTACCESS DATE," +
>                     "FORMERLEVEL INTEGER NOT NULL )";
> 
> Statement to insert my JAVA_OBJECT:
> 
>             PreparedStatement stmt = con.prepareStatement("insert into 
> APP.ITEMS (ITEM) VALUES (?)");
>             stmt.setObject(1,item);
>             stmt.addBatch ( );
> 
> Does somebody knows a solution for this problem?

Hello Kevin,

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).

Another way to go is to use the object relational mapping technique, a 
third is to use an object-store instead of a relational database.

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 :)



regards,
-- 
Kristian

> 
> 
> Sincerely
> 
> Kevin
> 


Mime
View raw message