проблема с запросом именованного параметра в спящем режиме

Чтобы предотвратить SQL-инъекцию, я пытаюсь преобразовать динамические запросы в запрос с именованным параметром. Однако, когда я использую этот код -

String query = "from Ad a left join fetch a.adQueries left join fetch a.aduser u left join fetch u.profile where a.id =:identifier";
        Query q = s.createQuery(query);
        q.setParameter("identifier", id);

Данные из БД не возвращаются, хотя данные есть, и тот же запрос в динамической форме возвращает данные

и когда я использую этот код -

String query = "from Ad a left join fetch a.adQueries left join fetch a.aduser u left join fetch u.profile where a.id =:identifier";
        Query q = s.createQuery(query);
        q.setLong("identifier", id);

он выдает исключение нулевого указателя.

Пожалуйста, дайте мне знать, где я ошибаюсь

Спасибо


person Juzer Arsiwala    schedule 11.01.2011    source источник


Ответы (1)


Возможно, id это null, это может вызвать такое поведение.

person axtavt    schedule 11.01.2011