當我試圖從SQLServer2008中的表中獲取記錄時,得到的異常名爲:org.hibernate.MappingException:No JDBC方法的映射類型: -9爲什麼?org.hibernate.MappingException:No JDBC類型的方言映射:-9
雖然配置文件是正確的。
當我試圖從SQLServer2008中的表中獲取記錄時,得到的異常名爲:org.hibernate.MappingException:No JDBC方法的映射類型: -9爲什麼?org.hibernate.MappingException:No JDBC類型的方言映射:-9
雖然配置文件是正確的。
我改變了查詢,並明確地將其轉換爲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'";
這是Hibernate映射類型的問題。
你可以擴展一個方言。例如:
public class SQLServerDialectOverrider extends SQLServerDialect{
public SQLServerDialectOverrider() {
super();
registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
}
}
使用此類作爲方言類。
我正在使用Hibernate4.0從Sqlserver2008中獲取 – aswininayak
http://www.coderanch.com/t/565413/ORM/java/No-Dialect-mapping-JDBC-type#2567622 – aswininayak
我有同樣的問題和@ lephix的答案解決了問題,您應該將其標記爲正確。 – Roberto