You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by Andy Rozman <an...@triera.net> on 2008/04/15 01:40:15 UTC
derby & hibernate & type 'text'
Hi !
I am new to derby and I have one question. I am using Hibernate with my
application and I am having little problems with Derby... (I used same
db configutaion on PostgreSQL, Mckoi and HsqlDb)...
It seems that type text (which should be unlimited varchar) is
interpreted as CLOB(255). I don't know where this happens but my
application now fails... Is this Derby problem or Hibernate? I am using
latest of Derby (10.3.2.1) and Hibernate 3.1.
Which is longest varchar format in Derby?
If someone uses Hibernate with Derby I would be thankful for any help...
Andy
Re: derby & hibernate & type 'text'
Posted by Thomas Nielsen <Th...@Sun.COM>.
Andy Rozman wrote:
> It seems that type text (which should be unlimited varchar) is
> interpreted as CLOB(255). I don't know where this happens but my
> application now fails... Is this Derby problem or Hibernate? I am using
> latest of Derby (10.3.2.1) and Hibernate 3.1.
Hi Andy,
Hibernate seems to map its 'text' type to a database clob, not a
database varchar. This is Hibernates doing, not Derbys. See attached
link to Hibernate "cheat sheet"[1].
You might be better off with using Hibernates 'string' type which maps
to a database varchar type?
I'm not sure exactly why it fails using 'text' and a clob with derby,
but I do know there are a few clob related fixes in the upcoming 10.4
release.
The release candidate of Derby 10.4 is now available[2], and the
official release should be just around the corner. Maybe you could give
the RC a quick spin to see if the problem is solved?
Cheers,
Thomas
[1] http://ndpsoftware.com/HibernateMappingCheatSheet.html
[2] http://wiki.apache.org/db-derby/DerbyTenFourRelease -->
ReleaseCandidates
--
Thomas Nielsen
Re: derby & hibernate & type 'text'
Posted by Mamta Satoor <ms...@gmail.com>.
Hi Andy,
I am not sure what you mean by your application fails but here is some
general information about CLOB datatype in Derby. In Derby, CLOB
values are limited to a maximum of 2,147,483,647 characters. Derby
documentation on various datatypes can be found in Reference Manual at
http://db.apache.org/derby/manuals/index.html#docs_10.3
Mamta
On 4/14/08, Andy Rozman <an...@triera.net> wrote:
> Hi !
>
> I am new to derby and I have one question. I am using Hibernate with my
> application and I am having little problems with Derby... (I used same db
> configutaion on PostgreSQL, Mckoi and HsqlDb)...
>
> It seems that type text (which should be unlimited varchar) is interpreted
> as CLOB(255). I don't know where this happens but my application now
> fails... Is this Derby problem or Hibernate? I am using latest of Derby
> (10.3.2.1) and Hibernate 3.1.
>
> Which is longest varchar format in Derby?
>
> If someone uses Hibernate with Derby I would be thankful for any help...
>
> Andy
>
Re: derby & hibernate & type 'text'
Posted by Damian Carey <ja...@gmail.com>.
On Tue, Apr 15, 2008 at 9:40 AM, Andy Rozman <an...@triera.net> wrote:
> Hi !
> I am new to derby and I have one question. I am using Hibernate with my
> application and I am having little problems with Derby... (I used same db
> configutaion on PostgreSQL, Mckoi and HsqlDb)...
> It seems that type text (which should be unlimited varchar) is interpreted
> as CLOB(255). I don't know where this happens but my application now
> fails... Is this Derby problem or Hibernate? I am using latest of Derby
> (10.3.2.1) and Hibernate 3.1.
>
> Which is longest varchar format in Derby?
> If someone uses Hibernate with Derby I would be thankful for any help...
> Andy
We use both Derby and Postgres with Hibernate, so here are a few
ideas. I guess your hibernate mapping is something like ...
<property name="nbString" type="text">
<column name="nbString"/>
</property>
CLOB(255) is likely being set by the hibernate "Dialect". (Db2Dialect
I think ??) The Postgres dialect can have the "text" type, which does
have a limit of around a gig. However Derby is different. The longest
varchar in derby is 32672 long. In hibernate you set it thus ...
<property name="nbString" type="string">
<column name="nbString" length="32672"/>
</property>
Typically you are better off with the string in preference to the CLOB
because you can do more sophisticated text searches in a string than
in a clob. Of course it depends on what you are doing.
HTH
Cheers,
-Damian