Skip to content

Hibernate通配符(?)报错

1.报错信息:

  • org.hibernate.query.SemanticException: Unlabeled ordinal parameter ('?' rather than ?1)

2.错误原因

  • 从 Hibernate 5.3 版本开始, 已删除对 HQL/JPQL 查询中的旧式查询参数 ('?') 声明的支持

3.解决方案

  • 将 column = ? 改为 column = :value 即可
java
Query<Person> query = HibernateTest.getSession().createQuery("from Person person where person.pid = :pid", Person.class).setParameter("pid", 1001);