Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hibernate could not locate named parameter even if it exist

Tags:

Hibernate Keeps detecting

org.hibernate.QueryParameterException: could not locate named parameter [name] 

even though it exist. here's my hql

Query query = sess().createQuery("from UserProfile where firstName LIKE '%:name%'").setParameter("name", name); 

Why does hibernate keeps throwing that exception? even though the parameter exist?

like image 644
user962206 Avatar asked Jan 24 '13 12:01

user962206


1 Answers

Should be like this:

Query query = sess().createQuery("from UserProfile where firstName LIKE :name")                     .setParameter("name", "%"+name+"%"); 

In your case ':name' is actual string Hibernate will search for. If you need to have a real named parameter, you need to have just :name.

Thus % should be passed as a value of :name and Hibernate will substitute :name with actual value.

Note, that if your value contains % and you want it to be an actual letter instead of wildcard, you'll have to escape it, here is an example of escaper-class.

like image 97
Stanislav Bashkyrtsev Avatar answered Sep 24 '22 08:09

Stanislav Bashkyrtsev