Конвертировать простой Mysql в JPQL-запросы

0

Доброе утро, каждый, посмотрев, где-нибудь, я прихожу к тебе, чтобы попросить о помощи. Итак, у меня есть этот запрос 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");
}

Итак, что я хочу конкретно. Я хочу запрос, который может сортировать в списке таблиц пользователя, где на рабочем месте есть "Техник".

Спасибо за вашу помощь и приятный день.

Теги:
jpa
jpql

1 ответ

0

В 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(); 
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню