org.hibernate.MappingException: нет сопоставления диалектов для типа JDBC: -9 - PullRequest
2 голосов
/ 24 января 2012

Когда я пытаюсь извлечь запись из таблицы в SQLServer2008, возникает исключение, называемое: org.hibernate.MappingException: нет сопоставления диалектов для типа JDBC: -9 почему?

Хотя файл конфигурации правильный.

Ответы [ 2 ]

10 голосов
/ 27 марта 2012

Это проблема типов отображений в спящем режиме.

Вы можете расширить диалект. например:

public class SQLServerDialectOverrider extends SQLServerDialect{
    public SQLServerDialectOverrider() {
        super();
        registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());
        registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
    }
}

Используйте этот класс как класс диалекта.

3 голосов
/ 01 февраля 2012

Я изменил запрос и явным образом привел его к varchar, и он работал .......

String myquery = "select cast(t2.name as varchar) column_name from sys.objects t1 inner join sys.columns t2 on t2.object_id = t1.object_id"+
" left join sys.indexes t3 on t3.object_id = t1.object_id and t3.is_unique = 1 left join sys.index_columns t4 on t4.object_id = t1.object_id and t4.index_id = t3.index_id and t4.column_id = t2.column_id where (upper(t1.type) = 'U' or upper(t1.type) = 'V') and upper(schema_name(t1.schema_id)) = 'dbo' and upper(t1.name) = 'TEST'"; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...