SQLServer2008のテーブルからレコードをフェッチしようとすると、例外が発生しています:org.hibernate.MappingException:いいえJDBCタイプのダイアレクトマッピング: -9なぜ?org.hibernate.MappingException:いいえJDBC型のダイアレクトマッピング:-9
設定ファイルは正しいですが。
SQLServer2008のテーブルからレコードをフェッチしようとすると、例外が発生しています:org.hibernate.MappingException:いいえJDBCタイプのダイアレクトマッピング: -9なぜ?org.hibernate.MappingException:いいえJDBC型のダイアレクトマッピング:-9
設定ファイルは正しいですが。
私は、クエリを変更して、明示的にvarchar型にキャストし、それはそれは、Hibernateマッピングタイプの問題だ.......
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'";
を働きました。
あなたは方言を拡張することができます。 例:
public class SQLServerDialectOverrider extends SQLServerDialect{
public SQLServerDialectOverrider() {
super();
registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
}
}
このクラスをダイアレクトクラスとして使用します。
がSqlserver2008 – aswininayak
からフェッチするHibernate4.0を使用していますhttp://www.coderanch.com/t/565413/ORM/java/No-Dialect-mapping-JDBC-type#2567622 – aswininayak
私は同じ問題を抱えていたと@ lephixの答えが問題を解決したら、正しいものとしてマークしてください。 – Roberto