关于Hibernate在使用原生SQL语句多表查询所遇到的问题
2016-12-27 17:57
886 查看
今天早上想实现商品的分类功能时,使用的是原生SQL语句中的多表查询语法,遇到的问题:
1、写好SQL语句后,调用createQuery(hql)方法是出现 org.hibernate.hql.internal.ast.QuerySyntaxException异常,该异常信息是映射文件的字段与数据库字段不一致,或者名称不一致导致;
最后修改为createSQLQuery(hql)才成功;
备注:如果没有在createSQLQuery()后调用addEntity(ClothesType.class);方法,查出来的结果集与对象字段不对应
1、写好SQL语句后,调用createQuery(hql)方法是出现 org.hibernate.hql.internal.ast.QuerySyntaxException异常,该异常信息是映射文件的字段与数据库字段不一致,或者名称不一致导致;
public List<ClothesType> findClothesType(int categoryId) { String hql="select c.id,c.nameType from ClothesType as c join RelationPro as r on c.id=r.clotherstypeId where r.categoryId=1"; Query query=getSession().createQuery(hql); //query.setInteger(0, categoryId); @SuppressWarnings("unchecked") List<ClothesType> list = query.list(); System.out.println(list.get(0).getNameType()); System.out.println("hhhhhhhhhh"+list.size()); return list; }
最后修改为createSQLQuery(hql)才成功;
public List<ClothesType> findClothesType(int categoryId) { String hql="select c.id,c.nameType from ClothesType as c join RelationPro as r on c.id=r.clotherstypeId where r.categoryId=1"; Query query=getSession().createSQLQuery(hql).addEntity(ClothesType.class); //query.setInteger(0, categoryId); @SuppressWarnings("unchecked") List<ClothesType> list = query.list(); System.out.println(list.get(0).getNameType()); System.out.println("hhhhhhhhhh"+list.size()); return list; }
备注:如果没有在createSQLQuery()后调用addEntity(ClothesType.class);方法,查出来的结果集与对象字段不对应
相关文章推荐
- 使用Hibernate 5.0、4.0、3.0 createSQLQuery执行原生Sql语句 遇到问题及解决办法集锦
- 在ORM框架中使用原生sql语句进行聚合查询遇到的问题
- 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题
- Hibernate 使用原生SQL查询无法使用别名问题
- hibernate使用原生sql查询Hibernate原生SQL多表查询字段名重复问题以及解决方法
- Hibernate原生SQL查询多表关联,SQL语句要注意的问题
- Hibernate中使用原生的sql语句进行查询操作
- 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题
- Hibernate原生SQL查询多表关联,SQL语句要注意的问题
- Hibernate原生SQL查询多表关联,SQL语句要注意的问题
- 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题
- Hibernate 使用原生SQL查询oracle数据库显示问题(char,Date)
- weblogic hibernate关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题(www.50xiao.com)
- hibernate使用原生的sql,解决管理查询、结果集封装等问题
- 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题
- Hibernate使用原生SQL多表查询时字段名相同导致查询数据覆盖问题解决办法
- Hibernate中多表联合查询遇到的问题(原生态的SQL语句解决办法)
- 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题 .
- 解决Hibernate原生SQL映射问题 - SQL查询出来的结果映射为值对象
- Hibernate使用sql语句查询