Ответ 1
setParameter(String name,Object val)
Используется для привязки значения к указанному параметру. Но имя может возникать несколько раз в запросе, который не имеет значения. Поэтому проверьте один раз, есть ли у вас действительно данные для этого запроса.
проверьте документацию здесь
Некоторые основные тексты из этой документации
Именованные параметры запроса - это токены формы: name в строке запроса. Значение привязано к целочисленному параметру: foo путем вызова setParameter ( "foo", foo, Hibernate.INTEGER); например. Имя может появляться несколько раз в строке запроса.
Если вы все еще не получите результат, попробуйте использовать два имени и установите его
EntityManager.createQuery( "SELECT a FROM a WHERE a.b =: par1 ИЛИ a.c =: par2" ). setParameter ( "par1", obj).setParameter( "par2", obj);