¿Por qué Hibernate cambió para usar LONG sobre CLOB?

Parece que Hibernate comenzó a usarLONG tipo de datos en la versión 3.5.5 (hemos actualizado desde 3.2.7) en lugar deCLOB por la propiedad detype="text".

Esto está causando problemas ya queLONG El tipo de datos en Oracle es un tipo de datos obsoleto antiguo (consultehttp://www.orafaq.com/wiki/LONG) que no deben usarse, y las tablas no pueden tener más de una columna que tengaLONG como un tipo de datos

¿Alguien sabe por qué esto ha cambiado?

He intentado configurar el oráculoSetBigStringTryClob propiedad a verdadero (como se sugiere enHibernate> CLOB> Oracle :(), pero eso no afecta el mapeo del tipo de datos, sino solo los elementos internos de transferencia de datos que son irrelevantes para mi caso.

Una posible solución para esto es anular elorg.hibernate.dialect.Oracle9iDialect:

public class Oracle9iDialectFix extends Oracle9iDialect {
  public Oracle9iDialectFix() {
    super();
    registerColumnType(Types.LONGVARCHAR, "clob");
    registerColumnType(Types.LONGNVARCHAR, "clob");
  }
}

Sin embargo, este es el último recurso: anular esta clase es un paso más cerca de bifurcar Hibernate, que preferiría evitar hacer.

¿Alguien puede explicar por qué se hizo esto? ¿Debería plantearse esto como un error?

[ACTUALIZACIÓN]: he creadohttp://opensource.atlassian.com/projects/hibernate/browse/HHH-5569, Veamos qué pasa.

Respuestas a la pregunta(3)

Su respuesta a la pregunta