如何在Hibernate HQL中使用LIKE运算符的参数化查询?

时间:2014-02-19 03:44:16

标签: mysql sql database hibernate hql

当我试图通过LIKE运算符使用参数化值查询数据时,我遇到了一个Hibernate Query问题,以下是我的代码片段:

String hql = "FROM Customer WHERE username LIKE :username";
Query query =sessionFactory.getCurrentSession().createQuery(hql);
query.setParameter("username", "%" + keyword + "%")

以上代码运行alwasy,但有例外:

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: LIKE near line 1

可以使用其他查询运算符,例如=,!=,>使用参数化值,只是对此感到困惑,如何使用Hibernate查询类似操作符和参数化值?

提前致谢!

1 个答案:

答案 0 :(得分:1)

String hql = "FROM Customer WHERE username LIKE ':username'";
Query query =sessionFactory.getCurrentSession().createQuery(hql);
query.setParameter("username", "%" + keyword + "%")