У меня есть три таблицы: камеры - [id, address, city, url, server_name, ...] vlc - [id, camera_id (что равно id в камерах) , server_name, порт, статус] категории - [идентификатор, имя]Ошибка синтаксиса Спящий режим - неожиданный токен: ВКЛ
Услышь мой MySQl Синтаксис, который дал мне хороший результат:
"SELECT vlc.camera_id, vlc.url, vlc.port,"
+ " vlc.server_name, cameras.address, cameras.city, categories.name FROM vlc AS vlc" +
" INNER JOIN cameras ON vlc.camera_id = cameras.id" +
" INNER JOIN categories ON cameras.category_id = categories.id"
+ " WHERE vlc.status = 'active' AND ")
Но в Hibernate я получил эту ошибку синтаксиса:
org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ON near line 1, column 141
Любой может помочь? Я знаю, что это может быть очевидно, но я не могу найти решение.
EDIT: я изменил:
@SuppressWarnings("unchecked")
public List<VLC> getVLCs() {
return getCurrentSession().createSQLQuery("SELECT vlc.camera_id, vlc.url, vlc.port,"
+ " vlc.server_name, cameras.address, cameras.city, categories.name FROM vlc AS vlc" +
" INNER JOIN cameras ON vlc.camera_id = cameras.id" +
" INNER JOIN categories ON cameras.category_id = categories.id"
+ " WHERE vlc.status = 'active'").list();
}
Но теперь я получил:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to pl.humandevice.model.VLC
я должен изменить что-то в моих классах Propably
Вы пытаетесь использовать собственные запросы или HQL? –
Покажите, где вы используете этот запрос. Убедитесь, что вы используете метод 'createSQLQuery', а не' createQuery' – Divers
, вероятно, инструкции HQL –