Синтаксическая ошибка MYSQL при использовании LIMIT в Java - PullRequest
4 голосов
/ 05 января 2011

Я выполняю несколько простых операторов MYSQL из приложения Java. Я получаю синтаксическую ошибку для оператора, который, кажется, работает нормально, если я запускаю его непосредственно на сервере MYSQL через Navicat. Утверждение, которое доставляет мне неприятности:

@NamedQuery(name = "Image.findDefaultByTest", query = "SELECT i FROM Image i where (i.test_id = :test) LIMIT 0,1")

Я получаю ошибку:

Syntax error parsing the query [Image.findDefaultByTest: SELECT i FROM Image i where (i.test_id = :test) LIMIT 0,1], line 1, column 48: syntax error at [LIMIT].

Просто приведу пример утверждения в строке выше, которое работает:

@NamedQuery(name = "Image.findByLocation", query = "SELECT i FROM Image i WHERE i.location = :location")

Любая помощь по этому вопросу будет принята с благодарностью, единственная информация, которую я могу найти по этому вопросу через Google, по-видимому, относится к 2003 году!

1 Ответ

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

Используйте @NamedNativeQuery вместо @NamedQuery.

@NamedQuery для запросов hql.

Проверить это http://www.mkyong.com/hibernate/hibernate-named-query-examples/

LIMIT не работает в HQL, кажется.

...