Недавно я обновил Hibernate с версии 3.3.x до 3.6.4. В версии 3.3.x validateSchema (hibernate.hbm2ddl.auto=validate) работает корректно.
В версии 3.6.x валидация нарушена (проверено также для 3.6.4 и 3.6.7). Эта проблема актуальна только для текстового поля.
Я переопределил тип SQL на своем диалекте, например.
public class SQLServer2000UnicodeDialect extends SQLServerDialect {
public SQLServer2000UnicodeDialect(){
super();
// Use Unicode Characters
...
registerColumnType( Types.CLOB, "ntext" );
...
}
}
Но во время проверки спящий режим использует оригинальные типы SQL вместо настроенных!
Неверный тип столбца в db.dbo.table_name для столбца a_column. Найдено: ntext, ожидается: text
Похоже на баг, но не уверен, что это так. Может я что-то упускаю в настройках?
P.S. hibernate.hbm2ddl.auto=create/update также работает некорректно!
П.П.С. Моя конфигурация сопоставления XML:
<property name="propName" type="text" column="a_column"/>