java - How to use LIMIT in spring within sql query? -


somehow cannot use limit qualifier within sql query using spring-data-jpa:

@query("select p person p p.company.id = :id order p.name desc limit 3") 

what wrong here?

caused by: org.hibernate.hql.internal.ast.querysyntaxexception: unexpected token: limit near line 1, column 146     @ org.hibernate.hql.internal.ast.querysyntaxexception.convert(querysyntaxexception.java:91)     @ org.hibernate.hql.internal.ast.errorcounter.throwqueryexception(errorcounter.java:109)     @ org.hibernate.hql.internal.ast.querytranslatorimpl.parse(querytranslatorimpl.java:304)     @ org.hibernate.hql.internal.ast.querytranslatorimpl.docompile(querytranslatorimpl.java:203)     @ org.hibernate.hql.internal.ast.querytranslatorimpl.compile(querytranslatorimpl.java:158)     @ org.hibernate.engine.query.spi.hqlqueryplan.<init>(hqlqueryplan.java:126)     @ org.hibernate.engine.query.spi.hqlqueryplan.<init>(hqlqueryplan.java:88)     @ org.hibernate.engine.query.spi.queryplancache.gethqlqueryplan(queryplancache.java:190)     @ org.hibernate.internal.abstractsessionimpl.gethqlqueryplan(abstractsessionimpl.java:301)     @ org.hibernate.internal.abstractsessionimpl.createquery(abstractsessionimpl.java:236)     @ org.hibernate.internal.sessionimpl.createquery(sessionimpl.java:1800)     @ org.hibernate.jpa.spi.abstractentitymanagerimpl.createquery(abstractentitymanagerimpl.java:328)     ... 48 more 

limit not part of jpql. mechanism available in current release version (1.6.0.release of time of writing) pagination:

interface personrepository extends repository<person, long> {    @query("...")   list<person> findlimited(..., pageable pageable); } 

this can used follows:

repository.findlimited(..., new pagerequest(0, 10)); 

this return first ten results of query defined in @query annotation.

the current master branch of spring data jpa contains new feature allow rewrite above query follows:

interface personrepository extends repository<person, long> {    list<person> findtop3bycompanyorderbyname(company company); } 

as of version 1.7.0.m1 (feature already available in snapshots) query derivation mechanism understand top , first in subject clause limit number of results returned.


Comments

Popular posts from this blog

javascript - DIV "hiding" when changing dropdown value -

html - Accumulated Depreciation of Assets on php -