求助MySql:No Dialect mapping for JDBC type: -1

B先生2012 2010-08-20 03:30:17
代码:
sql='select i.sid,i.sintro from tb_source_info i';
Session session = getSession();
Query query = session.createSQLQuery(sql).setResultTransformer(
Transformers.ALIAS_TO_ENTITY_MAP);
return query.list();

执行后抛出异常:
Hibernate: select i.sid,i.sintro from tb_source_info i
org.hibernate.MappingException: No Dialect mapping for JDBC type: -1


原因:Mysql 数据库中tb_source_info表中的sinotro字段是text类型的,这里不支持,

请问如何解决,我这里必须要写sql语句,不能写hql语句?
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingyinjava 2010-08-27
  • 打赏
  • 举报
回复
拓展MySql方言类即可

public class ExtendMysqlDialect extends MySQLDialect {

public ExtendMysqlDialect(){
super();
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
}

}
zhlvsihui 2010-08-26
  • 打赏
  • 举报
回复
sql='select i.sid,i.sintro from tb_source_info i';
Session session = getSession();
Query query = session.createSQLQuery(sql).setResultTransformer(
Transformers.ALIAS_TO_ENTITY_MAP);
return query.list();

执行后抛出异常:
Hibernate: select i.sid,i.sintro from tb_source_info i
org.hibernate.MappingException: No Dialect mapping for JDBC type: -1


好像是你类用hibernate映射的类型不对,把这个类和映射文件发来看看。
还有用hql查询时应该用类名。tb_source_info这个看着像个数据库表。也不知道是什么东西了。
hatsubun2 2010-08-20
  • 打赏
  • 举报
回复
换个更高的方言版本试试
weipj007 2010-08-20
  • 打赏
  • 举报
回复
为什么不能用hql呢?反正是一张表里的字段?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧