It looks like that Hibernate started using LONG
data type in version 3.5.5 (we upgraded from 3.2.7) instead of CLOB
for the property of type=\"te
I cannot answer your question about why, but for Hibernate 6, it seems they're considering switching back to using CLOB
It looks like the resolution to this issue is to use materialized_clob
, at least that's what's being said by Gail Badner on HHH-5569.
This doesn't help me at all (and I left relevant comment about that) but might be helpful for someone else here. Anyway the bug is rejected and there is very little I can do about it but use overriden dialect :(
Can anybody explain why this was done? Should this be raised as a bug?
This has been done for HHH-3892 - Improve support for mapping SQL LONGVARCHAR and CLOB to Java String, SQL LONGVARBINARY and BLOB to Java byte[] (update of the documentation is tracked by HHH-4878).
And according to the same issue, the old behavior was wrong.
(NOTE: currently, org.hibernate.type.TextType incorrectly maps "text" to java.sql.Types.CLOB; this will be fixed by this issue and updated in database dialects)
You can always raise an issue but in short, my understanding is that you should use type="clob"
if you want to get the property mapped to a CLOB
.
PS: Providing your own Dialect
and declaring it in your Hibernate configuration (which has nothing to do with a fork) is IMHO not a solution on the long term.