如何在java中解决以下问题?

时间:2010-06-08 07:23:03

标签: java hibernate

运行查询时出现以下错误。

org.hibernate.hql.ast.QuerySyntaxException: expecting CLOSE, found 'LIMIT' near line 1, column 194 [from com.claystone.db.Gpsdata where id.mobileunitid = '2090818044' and gpsdate in (select id.gpsdate from com.claystone.db.Gpsdata where id.mobileunitid = '2090818044' ORDER BY id.gpsdate DESC LIMIT 1 )  and gpsstatus='true']

这是我的Query.Please给出了这个查询中的错误是什么?

data=session.createQuery[from com.claystone.db.Gpsdata where id.mobileunitid = '2090818044' and gpsdate in (select id.gpsdate from com.claystone.db.Gpsdata where id.mobileunitid = '2090818044' ORDER BY id.gpsdate DESC LIMIT 1 )  and gpsstatus='true']

2 个答案:

答案 0 :(得分:4)

为什么使用子查询?就这样做:

data=session.createQuery[from com.claystone.db.Gpsdata where id.mobileunitid = '2090818044' and gpsstatus='true' ORDER BY id.gpsdate DESC LIMIT 1]

您可能需要将LIMIT 1放在最后,并在查询中使用.setMaxResults(1)

答案 1 :(得分:0)

另一方面,如果使用createQuery()而不是CreateSQLQuery(),则可以看到相同的错误。 "期待CLOSE,发现' LIMIT'"或者"期待CLOSE,找到' NULL'