db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kashyup <va...@quantum4d.com>
Subject Re: Hibernate + Derby - Unable to determine stream header for hibernate type 'text'
Date Fri, 19 Jun 2009 18:31:54 GMT

Hi kristian,
thanks for logging the bug.
I will try to look for some workarounds.

The CLOB(255) column size limitation is another open bug logged in
Hibernate. As Hibernate's DerbyDialect creates a CLOB(255) for java strings
mapped as type 'text' in .hbm files. I am using the same set of mapping
files on Postgres8.3 and Oracle10g. Type 'text' maps nicely to postgres and
Oracle as type 'text' and 'CLOB' resp

My idea was to let Hibernate create CLOB(255) columns in Derby, and then I
can write an alter column sql to change the CLOB column size. And then run
my app on Derby using the same Hibernate mappings.

Seems like i will have to work on quite a few workarounds.



I want to 

Kristian Waagan-4 wrote:
> kashyup wrote:
>> Hello all,
>> We have just started to look into Derby as our embedded DB for a desktop
>> app
>> version.
>> Env: Hibernate 3.2 and Derby 10.5.1
>> I have defined a java string field of type 'text' in Hibernate Mapping
>> (works great on Postgres 8.1 and Oracle 10g)
>> I use Hibernate SessionFactory to generate Table schema, which is done
>> without any error.
>> But, when I try to save records in tables via Hibernate Session, I get
>> the
>> following exception:
>> Note: If I change hibernate mapping to type 'string', then I dont get
>> this
>> error:
>> java.lang.IllegalStateException: No context, unable to determine which
>> stream header format to generate
>> 	at
>> org.apache.derby.iapi.types.ClobStreamHeaderGenerator.determineMode(Unknown
>> Source)
>> 	at
>> org.apache.derby.iapi.types.ClobStreamHeaderGenerator.expectsCharCount(Unknown
>> Source)
>> 	at org.apache.derby.iapi.types.ReaderToUTF8Stream.fillBuffer(Unknown
>> Source)
>> 	at org.apache.derby.iapi.types.ReaderToUTF8Stream.read(Unknown Source)
>> 	at java.io.DataInputStream.read(Unknown Source)
>> 	at org.apache.derby.iapi.types.SQLClob.readExternal(Unknown Source)
>> 	at org.apache.derby.iapi.types.SQLChar.getString(Unknown Source)
>> 	at org.apache.derby.iapi.types.SQLClob.getClone(Unknown Source)
>> 	at org.apache.derby.impl.sql.GenericParameter.getClone(Unknown Source)
>> 	at org.apache.derby.impl.sql.GenericParameterValueSet.<init>(Unknown
>> Source)
>> 	at org.apache.derby.impl.sql.GenericParameterValueSet.getClone(Unknown
>> Source)
>> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.addBatch(Unknown
>> Source)
>> 	at
>> org.hibernate.jdbc.BatchingBatcher.addToBatch(BatchingBatcher.java:31)
>> 	at
>> org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252)
>> 	at
>> org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2665)
>> Also, I need to save it as type 'text' even though it gets saved as
>> CLOB(255), as the CLOB column size can later be altered.
>> What could be the cause? or changes needed?
> Hello,
> You have discovered / triggered a bug in the new Clob handling code 
> introduced in 10.5.1.
> I logged DERBY-4278 [1], and have started working on a fix (the 
> regression tests are running, patch needs review).
> Regarding workarounds, I'm afraid all I can think of is using the client 
> driver instead of the embedded driver, avoid batching for inserts with 
> Clobs, change the data type, or downgrade to 10.4. Another option is to 
> build Derby with the patch and test it out :)
> I observe that you are using very small Clobs (255 characters). Clobs 
> are in general less effective than using for instance VARCHAR.
> Is your concern about altering the column size related to Derby, 
> Hibernate or something else?
> Regards,
> -- 
> Kristian
> [1] https://issues.apache.org/jira/browse/DERBY-4278
>> thanks all

View this message in context: http://www.nabble.com/Hibernate-%2B-Derby---Unable-to-determine-stream-header-for-hibernate-type-%27text%27-tp24099674p24116733.html
Sent from the Apache Derby Users mailing list archive at Nabble.com.

View raw message