日期:2014-05-18  浏览次数:20628 次

关于hibernate生成的sql的语句????
每次看log4j输出的日志中,hibernate生成的sql都用as起了别名.
这有什么性能优化,能不能设置什么不让它起别名??
我写hql查询的时候的.生成的sql查询语句里面有我没有指定的列名,
比如我只查name和password.生成的sql的语句应该是select name ,password from users
而他生成的是查了所有列

------解决方案--------------------
不会影响啊
你要是想的到name ,password
直接写select name ,password from User u

Iterator results = sess.createQuery(
"select name ,password from User u" +
.list()
.iterator();

while ( results.hasNext() ) {
Object[] row = (Object[]) results.next();
String name = (String)row[0];
String password = (String)row[1];
.....


------解决方案--------------------
别名不会影响性能的,如果你只想查某几个列的话,6楼正解,其实hql语句的表达能力不比sql差,sql能实现的功能中,绝大部分hql都能实现。
关于hql,lz可以参考下这个手册:http://download.csdn.net/source/474504
------解决方案--------------------
探讨
其实hql语句的表达能力不比sql差,sql能实现的功能中,绝大部分hql都能实现。

------解决方案--------------------
探讨
引用:
其实hql语句的表达能力不比sql差,sql能实现的功能中,绝大部分hql都能实现。

实际上,很多复杂的,嵌套的sql都不能实现
而且多表关联后生成的sql效率可能很差

但是多表关联时,加别名是能提高效率的