当我尝试从SQLServer2008中的表中获取记录时,我得到了一个名为:org.hibernate.MappingException的异常:没有JDBC类型的Dialect映射:-9为什么?
虽然配置文件是正确的.
lep*_*hix 10
这是hibernate映射类型的问题.
你可以扩展一种方言.例如:
public class SQLServerDialectOverrider extends SQLServerDialect{
public SQLServerDialectOverrider() {
super();
registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
}
}
Run Code Online (Sandbox Code Playgroud)
使用此类作为方言类.
我更改了查询并将其显式转换为 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'";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8982 次 |
| 最近记录: |