java - 参数不作为命名参数存在

标签 java hibernate

我的查询是这样的:

Query query1 = session.createQuery("select c.email from Contact c where c.contactNo =:contactNo");
    query1.setInteger("contactNo", 22);

我得到的错误是:

Exception in thread "main" java.lang.IllegalArgumentException: Parameter contactNo does not exist as a named parameter in [select c.email from Contact c where c.contactNo = ?]

它工作正常

Query query = session.createQuery("select c.email from Contact c where c.contactNo = ?");
    query.setInteger(0, 22);

为什么第一个查询不起作用?

最佳答案

Query query1 = session.createQuery("select c.email from Contact c where c.contactNo =:contactNo");
query.setParameter("contactNo", 22);

尝试使用 setParameter 而不是 setInteger

关于java - 参数不作为命名参数存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24322073/

相关文章:

java - 临时文件未找到文件异常

java - 如果链表和数组是基本数据结构,树、哈希表、堆等是什么类型的数据结构?

mysql - 在 databean : Cannot add constraint to MySQL table 上使用 Hibernate Annotation

java - 不能同时在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean 获取多个包

hibernate - 尝试从 JDBC 元数据解析外键元数据未能找到外键的列映射

java - Codingbat-递归1-count7

java - Windows 上每个 Java 进程的最大内存量?

java - 如何使用 java 将 UTF16(表情符号)转换为 HTML 实体(十六进制)

java - hibernate 状态下从一侧到多侧的级联

java - Hibernate 的 SQLite 方言错误