I'm going to get data from database using LIKE expression. My purpose is getting limited data according to my prefix('Sam%'). I tried to execute a query like below. But I got an Exception,
java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of def that does not exist in the query string select o from Item o WHERE o.itemName like ':def%'.
My method is,
public List<Item> getSuggestedData(String def) {
EntityManager em = getEntityManager();
try {
Query q = em.createQuery("select o from Item o WHERE o.itemName like ':def%'");
q.setParameter("def", def);
return q.getResultList();
} finally {
em.close();
}
}
How can fix this error.
Thanks in Advance
update
Query q = em.createQuery("select o from Item o WHERE o.itemName like ':def%'");
to
Query q = em.createQuery("select o from Item o WHERE o.itemName like :def");