7

我有一个查询字符串:

session.createSQLQuery("SELECT C.FIRSTNAME AS firstName, C.LASTNAME as lastName FROM ADDRESSBOOK_CONTACT AS C WHERE C.ADDRESSBOOK_ID = :addressbookId AND firstName = ?");

设置我的位置参数时,查询正常运行但没有结果:

query.setParameter(0, "firstname1010");
query.setParameter("addressbookId", addressbook.getId());

这是错误的。如果我将位置更改为命名:

query.setParameter(firstname, "firstname1010");

然后我的查询返回正确的结果。

无需对我为什么这样做进行复杂的解释,我想知道是否应该支持混合这两种类型?我正在使用休眠 3.6.3.Final

4

1 回答 1

6

从类级文档上org.hibernate.Query

您不能在同一查询中混合和匹配 JDBC 样式参数和命名参数。

所以你看到的行为是完全可以预料的。

于 2012-06-28T11:54:24.767 回答