0

I have code to search using criteria:

StringBuilder sql = new StringBuilder("SELECT * FROM USER WHERE 0=0 ");

Query query = entityManager.createNativeQuery(sql.toString());

if (keyword != null) {
    sql.append(" AND NAME LIKE ('%' || :keyword || '%') ");
    query = entityManager.createNativeQuery(sql.toString()).setParameter("keyword", keyword);
}

if (age != null) {
    sql.append(" AND age >= :age ");
    query = entityManager.createNativeQuery(sql.toString()).setParameter("age", age);
}

return query.getResultList();

When I run it show error message:

Named parameter not bound : keyword

Please help me solve this problem! Thanks

Java Dev Beginner
  • 243
  • 1
  • 4
  • 13
  • Also, you should create the query once. Now, if you have both keyword and age, you'll only set the age parameter as you've created a fresh query, which hasn't gotting keyword set. – Mark Rotteveel May 02 '22 at 10:02

0 Answers0