Доброе утро, каждый, посмотрев, где-нибудь, я прихожу к тебе, чтобы попросить о помощи. Итак, у меня есть этот запрос mysql
SELECT * FROM USER WHERE WORPLACE ='TECHNICIAN',
И вот мой запрос JQPL
SELECT U FROM USER U WHERE U.WORPLACE =:+TECHNICIAN
Но некоторые, как я получаю эту ошибку на Glassfish
java.lang.IllegalStateException: Query argument Technician not found in the list of parameters provided during query execution.
Вот код моего arraylist на управляемом Bean
public List<Users> getListUsers() {
return this.userService.getTechnicians("Technician");
}
Итак, что я хочу конкретно. Я хочу запрос, который может сортировать в списке таблиц пользователя, где на рабочем месте есть "Техник".
Спасибо за вашу помощь и приятный день.
В JPQL называются параметры запроса, начинающиеся с :
а затем имя. Итак, если вы хотите вызвать свой параметр запроса Technician
вам необходимо ссылаться на него как " :Technician
в вашем запросе.
Затем вы можете вызвать метод setParameter
в интерфейсе Query
с именем параметра и его значением.
Вот пример использования вашего запроса:
public List<User> getTechnicians(String technician) {
TypedQuery<User> q = getEntityManager().createQuery("SELECT u FROM User u WHERE u.poste =:Technician", User.class );
q.setParameter("Technician", technician);
return q.getResultList();
}