I have a JPQL query like this:
@NamedQuery(
name = "UserAccount.searchEmail",
query = "SELECT u FROM UserAccount u WHERE u.email LIKE :searchText")
I then set the searchText parameter with this code:
public List<UserAccount> search(String namedQuery, String searchText) {
Query query = getEntityManager().createNamedQuery(namedQuery);
query.setParameter("searchText", "%" + searchText + "%");
try
{
return query.getResultList();
}
catch(Exception e)
{
logger.log(Level.SEVERE, "Error when searching UserAccount",e);
}
return null;
}
As noted in my JPQL NamedQuery, UserAccount has a field called email. When I run this code with the serachText as "whatever", it doesn't return anything. However, when I run the corresponding MySql SQL statement of:
select * from user_account where email like '%whatever%';
It works as expected. Any ideas what may be wrong with either my JPQL statement of my Java code?