Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止Hibernate使用select子句中谓词的列_Hibernate_Hql - Fatal编程技术网

防止Hibernate使用select子句中谓词的列

防止Hibernate使用select子句中谓词的列,hibernate,hql,Hibernate,Hql,由于性能限制,我们必须优化数据库操作和带宽。一个简单的Hibernate HQL查询,如来自用户u的查询,其中u.id=?生成SQL语句,例如: SELECT u.id, u.name FROM USERS u where u.id = ? Hibernate在select子句中重复一个字段u.id是相当愚蠢的,它已经存在于谓词u.id=?。是否有人知道一种简单的方法来防止这种情况,从而使查询结束: SELECT u.name FROM USERS u where u.id = ? 谢谢 将

由于性能限制,我们必须优化数据库操作和带宽。一个简单的Hibernate HQL查询,如来自用户u的查询,其中u.id=?生成SQL语句,例如:

SELECT u.id, u.name FROM USERS u where u.id = ?
Hibernate在select子句中重复一个字段u.id是相当愚蠢的,它已经存在于谓词u.id=?。是否有人知道一种简单的方法来防止这种情况,从而使查询结束:

SELECT u.name FROM USERS u where u.id = ?

谢谢

将select子句添加到HQL中。你的陈述是

select u.* FROM Users u where u.id = :id
如果指定投影,Hibernate将使用它

select u.name from Users u where u.id = :id

不幸的是,我们的表有很多列,写所有的字段是一件痛苦的事情。我希望Hibernate变得更聪明,并意识到它不应该查询那些字段。。。没有配置选项来防止这种行为?你需要编辑你原来的帖子。因为它不代表这个信息