执行sql出现No Dialect mapping for JDBC type: -9错误

我在执行hibernatesql语句查询是报No Dialect mapping for JDBC type: -9错误,sql语句是:select top 3 name from sys.tables where name like 'LogInfo_%' and name <= 'LogInfo_2015_01' order by Name desc,是查询数据库表名称的,数据库测试语句没问题,数据库是SQLserver2008,各位大神帮看看啦,小弟第一次逛这里,对于悬赏什么的都不是很清楚,也没金币,但还是厚着脸皮问问各位大神,谢谢了

and name <= 'LogInfo_2015_01'

name是字符串,怎么能 <='LogInfo_2015_01'

oracle sql不支持top,可以用rownum<=3这个条件来实现

http://blog.csdn.net/xd195666916/article/details/5419316

import org.hibernate.dialect.SQLServerDialect;  

public class SqlServer2008Dialect extends SQLServerDialect {  

    public SqlServer2008Dialect() {  
        super();  
        registerHibernateType(1, "string");  
        registerHibernateType(-9, "string");  
        registerHibernateType(-16, "string");  
        registerHibernateType(3, "double");  
    }  
}  

name的数据类型是nvarchar吗?如果是改为varchar类型应该能运行,但是这个治标不治本,这是hibernate没映射nvarchar