在Java中使用LIMIT时出现MYSQL语法错误

时间:2011-01-05 11:17:23

标签: java mysql sql mysql-error-1064

我正在Java应用程序中运行一些简单的MYSQL语句。我在语句上遇到语法错误,如果我通过Navicat直接对MYSQL服务器运行它,它似乎运行正常。给我带来麻烦的声明是:

@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 个答案:

答案 0 :(得分:2)

使用@NamedNativeQuery代替@NamedQuery

@NamedQuery用于hql查询。

检查一下 http://www.mkyong.com/hibernate/hibernate-named-query-examples/

LIMIT在HQL中不起作用。