[
https://issues.apache.org/jira/browse/DERBY-3621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Hillegas closed DERBY-3621.
--------------------------------
Resolution: Fixed
This is a Hibernate mapping issue, not a bug in Derby.
> Hibernate. Derby uses type 'text' as clob(255) instead of long varchar
> ----------------------------------------------------------------------
>
> Key: DERBY-3621
> URL: https://issues.apache.org/jira/browse/DERBY-3621
> Project: Derby
> Issue Type: Bug
> Affects Versions: 10.3.2.1
> Environment: OS: Windows, Derby 10.3.2.1, Hibernate 3.1 (same problem
> with newer versions)
> Reporter: Aleksander Rozman
>
> Hi !
> It seems that when type 'text' is used with Hibernate (indicating type text
> in database, which is varchar with no length defined-unlimited) Derby
> converts this definition to CLOB(255).
> --------- Original code is set to
> registerColumnType( Types.CLOB, "clob($l)" );
> This then procudes CLOB(255), which means that Derby gives it only 255
> character. Even if we dont use long varchar and use clob, we should at least
> give it max value for derby (this would fix most of problems, except in case
> where entry could be long varchar).
> --------- This is my hack (which doesn't work)
> I tried to "hack" hibernate and added following definition into
> DerbyDialect...
> registerColumnType(Types.LONGVARBINARY, "long varchar for bit data");
> registerColumnType(Types.LONGVARCHAR, "long varchar");
> registerColumnType(Types.CLOB, "long varchar");
> When I use type='text', then it always falls into Type.CLOB. This hack made
> it to be long varchar, which then produced error....
> Caused by: java.sql.SQLDataException: An attempt was made to get a data value
> of type 'LONG VARCHAR' from a data value of type 'CLOB'.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.ConnectionChild.newSQLException(Unknown
> Source)
> at
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.dataTypeConversion(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.setNull(Unknown
> Source)
> at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:76)
> at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:60)
> at
> org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1826)
> at
> org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1803)
> at
> org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2059)
> ------------------
> Any kind of fix would be helpful. I am trying to find *any* pure java
> database that works with Hibernate... Each have their own problems... Hsqldb
> is to slow when used on USB (it works very fast, but shutdown is problem),
> Mckoi works very slow, but shgutdown is fast, this one doesn't work...
> Problem is that I need to have "portable" database, since my application
> should be also used on USB disk....
> I hope this will be resolved...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.