由于性能限制,我们必须优化数据库操作和带宽。像from Users u where u.id = ?
这样的简单Hibernate HQL查询会生成一个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 = ?
谢谢!
答案 0 :(得分:0)
为您的HQL添加一个select子句。您的陈述是
的同义词select u.* FROM Users u where u.id = :id
如果指定投影,Hibernate将使用它。
select u.name from Users u where u.id = :id