Ошибка возврата запроса Hibernate - PullRequest
0 голосов
/ 26 января 2011

У меня следующий запрос гибернации -

    events = (List<Event>)session.createQuery(
            "Event where eventName like " 
            + "\"" + event.getEventName() 
            + "\"" +
            " and startingDate >=   "
            + "\"" + 
            event.getStartingDate() 
            + "\" " +
            " and endingDate <=  " 
            + "\"" + 
            event.getEndingDate()
            + "\" "
            ).list();

Но возвращает ошибку -

org.hibernate.QueryException: непредвиденный символ: '"' [Событие, в котором eventName, например,« test »и initialDate> =« 2011-01-19 »и ОкончаниеD <<" 2011-01-31 "] в org.hibernate.hql.ast.QueryTranslatorImpl.doCompile (QueryTranslatorImpl.java:227) в org.hibernate.hql.ast.QueryTranslatorImpl.compile (QueryTranslatorImpl.java:134) в org.hibernate.engine.query.HQLQueryPlan. (HQLQueryPlan.java:101) в org.hibernate.engine.query.HQLQueryPlan. (HQLQueryPlan.java:80) </p>

Кажется, говорят, что это не похоже на "где-то?"

Работало нормально, пока я не добавил поля даты в предложение where.

Спасибо

1 Ответ

2 голосов
/ 26 января 2011

Во-первых: вы должны использовать символ одинарной кавычки для разделения строк. Как это: «строка». Во-вторых, не создавайте запросы путем объединения строк. Используйте маркеры параметров, например:

Event where eventName like ? and startingDate >= ? and endingDate <= ?
Event where eventName like :name and startingDate >= :startDate and endingDate <= :endDate

Затем вызовите метод setParameter() из объекта Query, чтобы установить параметры. Вы можете использовать позиционные параметры (например, «? В позиции 0 - это имя») или именованные параметры («: имя - это имя») См. Раздел «Параметры привязки» в документации по Hibernate: http://docs.jboss.org/hibernate/core/3.5/reference/en/html_single/#objectstate-querying-executing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...