db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <Richard.Hille...@Sun.COM>
Subject Re: Insert JAVA_OBJECT in embedded Derby DB
Date Fri, 04 May 2007 13:17:53 GMT
Hi Kevin,

I think that Kristian and Bernt have given you the workarounds for this 
issue. It is true that Java ADTs were supported in earlier versions of 
Cloudscape. However, those ADTs were declared in a non-standard way. ADT 
support was disabled before the code was open-sourced as Derby--Derby 
attempts to follow the SQL Standard as closely as possible.

The good news is that ADT support was only lightly disabled at the 
parser level. Re-enabling this support with SQL Standard DDL should be 
straightforward. This effort is tracked by DERBY-651. For more context 
and for more advice about serializing objects into Derby, please see the 
following email thread: 
http://www.nabble.com/Storing-Java-Objects-in-a-table-tf454110.html#a1239466.

Hope this helps,
-Rick

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?
>
>
> Sincerely
>
> Kevin
>


Mime
View raw message