我有一个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
答案 0 :(得分:5)
来自org.hibernate.Query
上的班级文档:
您不能混用和匹配JDBC样式的参数和命名参数 在同一个查询中。
所以你所看到的行为是完全可以预期的。