Hibernate原生SQL查询多表关联,SQL语句要注意的问题
2016-04-25 09:17
405 查看
总结:
1、使用Hibernate 原生SQL查询,当多个表的关联时,或者返回多个表的字段时,最好要添加别名,并注意添加的别名的写法;
2.单表没问题,多表操作时,一定记得别名啊,最好不要 * ,写出具体的字段名。要不然,报异常字符越界,这异常是低层报出来的。很无语,所以用hibernate要规范才行。
执行如下的操作:
1>
使用hibernate 使用原生SQL查询,
Query q = session.createSQLQuery(sql).addEntity(Question.class).addEntity(Answer.class);
createSQLQuery执行的sql是如下的语句:
select b.*, a.* from question b left join answer a on a.id = b.ansId
1、使用Hibernate 原生SQL查询,当多个表的关联时,或者返回多个表的字段时,最好要添加别名,并注意添加的别名的写法;
2.单表没问题,多表操作时,一定记得别名啊,最好不要 * ,写出具体的字段名。要不然,报异常字符越界,这异常是低层报出来的。很无语,所以用hibernate要规范才行。
执行如下的操作:
1>
使用hibernate 使用原生SQL查询,
Query q = session.createSQLQuery(sql).addEntity(Question.class).addEntity(Answer.class);
createSQLQuery执行的sql是如下的语句:
select b.*, a.* from question b left join answer a on a.id = b.ansId
相关文章推荐
- redis的基本类型及操作命令
- 数据库ACID
- Linux下php安装Redis扩展
- MySqlHelper、CacheHelper
- Oracle在Linux下使用异步IO配置
- hadoop从oracle中到数据
- 查询MYSQL和查询HBASE速度比较
- 1-MySQL数据库简介
- mysql索引总结----mysql 索引类型以及创建
- sudo service memcached start
- sudo service memcached start
- Mac 安装MySQL到移动硬盘
- mysql主从同步
- 4_网易数据库发展历史
- MySQL开发
- MySQL 安装方式 @Doyle
- 3_mysql 主从复制
- SQL TRACE过程中的事件号详细解释
- MongoDB在Windows下的配置
- MySQL5.6版本性能调优my.cnf详解