2

我可以使用查询参数在命名查询中指定表(对象)、列名或表达式吗?

例如,我想使用一个查询,它允许我在选择整个对象或只选择计数之间切换。

select :param1
from TablePO t
where t.id = :param2

并在java中设置参数,如:

query.setParameter("param1", "t");
query.setParameter("param2", "2");

我想通过设置来避免复制和param1粘贴

query.setParameter("param1", "t");

或者

query.setParameter("param1", "count(t)");
4

1 回答 1

4

不,你不能。最后,HQL 参数变成了 JDBC 准备好的语句参数,而你不能用准备好的语句来做到这一点。参数保存值,而不是查询的任意部分。数据库必须能够根据参数化查询计算出查询计划,如果你想做的事情被允许,那是不可能的。

顺便说一句,如果您刚刚尝试过,您会自己找到它。

于 2012-05-17T18:23:47.427 回答