У меня возникают проблемы при попытке извлечь из базы данных с помощью Hibernate. То, что я пытаюсь сделать, - это получить вопросы из базы данных (используя Hibernate с HSQLDB), где тег tag
содержится в списке вопросов. Здесь ошибка:Проблема при использовании кластера WHERE ... IN (list)
06-Jan-2017 19:43:26.021 WARN [http-apr-8080-exec-4] org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions SQL Error: -5585, SQLState: 42585 06-Jan-2017 19:43:26.021 ERROR [http-apr-8080-exec-4] org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions malformed numeric constant: .
Вот запрос:
Query query = session.createQuery("FROM Question q WHERE (:someTag) in (q.tagList) ORDER BY (q.creationDate) DESC").setParameter("someTag", tag).setMaxResults(amount);
А вот полный метод:
public static List<Question> list(Tag tag, int amount){
Session session = HibernateUtil.getSession();
Query query = session.createQuery("FROM Question q WHERE (:someTag) in (q.tagList) ORDER BY (q.creationDate) DESC").setParameter("someTag", tag).setMaxResults(amount);
return query.list();
}
Он бросает неожиданный токен: CONTAINS – Malvrok
Я обновил ответ, не могли бы вы попробовать с 'элементами' сейчас? –
Большое вам спасибо! Я занимаюсь этой проблемой в течение 3 дней! : D – Malvrok