org.hibernate.MappingException: No Dialect mapping for JDBC type: -15的解决方法
2015-12-04 22:57
561 查看
org.hibernate.MappingException: No Dialect mapping for JDBC type: -15的原因和解决方法(注意:是在struts2和hibernate框架下写sql查询语句的时候出现的错误):
1、如果比如查询语句是"select *"形式的,要在执行查询的时候在后面加上addEntity(类名.class),用来指明该查询语句所对应的实体类,不然它不知道从哪里去查询;
比如:
String sql="select * from MaintenanceTemplate where State=1";
getSession().beginTransaction();
Query queryObject = getSession().createSQLQuery(sql)
.addEntity(MaintenanceTemplate.class)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List resultlist = queryObject.list();
getSession().getTransaction().commit();
2、如果比如查询语句是“select 表名.字段名 as 别名” 形式的,那么就要在执行查询的时候在后面加上addScalar("别名",Hibernate.字段类型),用来指明该查询语句查询的字段类型;
比如:
String queryString = "select b.EquipmentNo as equipNumber,"
+ " a.PointName as signalName,"
+ " from WsignalInfo a, WequipmentResume b"
+ " where a.EerId=b.EerId ";
getSession().beginTransaction();
Query queryObject = getSession().createSQLQuery(queryString)
.addScalar("equipNumber",Hibernate.INTEGER)
.addScalar("signalName",Hibernate.STRING)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
queryObject.setFirstResult(start);
queryObject.setMaxResults(limit);
List resultlist = queryObject.list();
getSession().getTransaction().commit();
3、如果比如要求查询返回结果的类型是map类型的,那么就要在执行查询的时候在后面加上setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP),用来指明查询结果要转换成map类型的。
1、如果比如查询语句是"select *"形式的,要在执行查询的时候在后面加上addEntity(类名.class),用来指明该查询语句所对应的实体类,不然它不知道从哪里去查询;
比如:
String sql="select * from MaintenanceTemplate where State=1";
getSession().beginTransaction();
Query queryObject = getSession().createSQLQuery(sql)
.addEntity(MaintenanceTemplate.class)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List resultlist = queryObject.list();
getSession().getTransaction().commit();
2、如果比如查询语句是“select 表名.字段名 as 别名” 形式的,那么就要在执行查询的时候在后面加上addScalar("别名",Hibernate.字段类型),用来指明该查询语句查询的字段类型;
比如:
String queryString = "select b.EquipmentNo as equipNumber,"
+ " a.PointName as signalName,"
+ " from WsignalInfo a, WequipmentResume b"
+ " where a.EerId=b.EerId ";
getSession().beginTransaction();
Query queryObject = getSession().createSQLQuery(queryString)
.addScalar("equipNumber",Hibernate.INTEGER)
.addScalar("signalName",Hibernate.STRING)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
queryObject.setFirstResult(start);
queryObject.setMaxResults(limit);
List resultlist = queryObject.list();
getSession().getTransaction().commit();
3、如果比如要求查询返回结果的类型是map类型的,那么就要在执行查询的时候在后面加上setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP),用来指明查询结果要转换成map类型的。
相关文章推荐
- QT5.0及其以上版本,<QApplication>出错的原因
- android 取得本地相册相片或者照相即照相后取出图片
- Objective-C Runtime 运行时之六:拾遗
- Objective-C Runtime 运行时之五:协议与分类
- Objective-C Runtime 运行时之四:Method Swizzling
- Objective-C Runtime 运行时之三:方法与消息
- java中的object类
- Objective-C Runtime 运行时之二:成员变量与属性
- web app 入门教程第一章基础知识
- Android性能优化
- IOS 拼接参数与URL
- xcode中设置ios9应用程序图标和启动图
- 关于Android的EditText的部分属性
- (NO.00004)iOS实现打砖块游戏(十五):导弹发射道具的实现(上)
- (NO.00004)iOS实现打砖块游戏(十五):导弹发射道具的实现(上)
- (NO.00004)iOS实现打砖块游戏(十五):导弹发射道具的实现(上)
- Android开发中需要注意哪些坑
- 框架模式 MVC 在Android中的使用
- JavaEE_Mybatis_SpringMVC_整合开发_lesson2_Mapper代理开发方式
- Android Service 启动和停止服务