Hibernate - 我可以混合命名和位置参数吗?

时间:2012-06-28 10:08:15

标签: java sql hibernate

我有一个queryString:

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");

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

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

1 个答案:

答案 0 :(得分:5)

来自org.hibernate.Query上的班级文档:

  

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

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