Java 无法执行带有限制的查询。sqlRestriction
为什么我写了一个查询,并且可以在Postgres中执行,结果很好,但是当我想使用Restrictions.sqlRestrictionquery执行时,它会给出语法错误。 这就是我试图做的Java 无法执行带有限制的查询。sqlRestriction,java,sql,spring,hibernate,postgresql,Java,Sql,Spring,Hibernate,Postgresql,为什么我写了一个查询,并且可以在Postgres中执行,结果很好,但是当我想使用Restrictions.sqlRestrictionquery执行时,它会给出语法错误。 这就是我试图做的 criteria.add(Restrictions.sqlRestriction("SELECT * FROM job JOIN job_applications as j ON id=id_job WHERE id=(SELECT id_job FROM (SELECT id_job,COUNT (id_j
criteria.add(Restrictions.sqlRestriction("SELECT * FROM job JOIN job_applications as j ON id=id_job WHERE id=(SELECT id_job FROM (SELECT id_job,COUNT (id_job_seeker) FROM job_applications GROUP BY id_job) AS foo WHERE COUNT = "+ dataTableFilter.sSearch[index]+")"));
给这个
严重:中Servlet[spring mvc dispatcher]的Servlet.service
路径为[/XYX]的上下文引发异常[请求处理]
失败;嵌套异常为
org.springframework.dao.InvalidDataAccessResourceUsageException:可能
未提取结果集;SQL[n/a];嵌套异常为
org.hibernate.exception.sqlgrammareexception:无法提取
根本原因为org.postgresql.util.PSQLException的结果集]错误:
选择位置处或附近的语法错误:287处
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponseQueryExecutorImpl.java:2103
在
org.postgresql.core.v3.QueryExecutorImpl.processResultsQueryExecutorImpl.java:1836
在
org.postgresql.core.v3.QueryExecutorImpl.executeQueryExecutorImpl.java:257
在
org.postgresql.jdbc2.AbstractJdbc2Statement.executeAstractjdbc2statement.java:512
在
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlagsStratjdbc2statement.java:388
在
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQueryAbstractJdbc2Statement.java:273 at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQueryDelegatingPreparedStatement.java:96
在
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQueryDelegatingPreparedStatement.java:96
在
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extractResultSetReturnImpl.java:82
位于org.hibernate.loader.loader.getResultSetLoader.java:2065 at
org.hibernate.loader.loader.executeQueryStatementLoader.java:1862
在
org.hibernate.loader.loader.executeQueryStatementLoader.java:1838
位于org.hibernate.loader.loader.doQueryLoader.java:909 at
org.hibernate.loader.loader.DoQueryAndInitializeNonLazCollectionsLoader.java:354
位于org.hibernate.loader.loader.doListLoader.java:2553 at
org.hibernate.loader.loader.doListLoader.java:2539 at
org.hibernate.loader.loader.listIgnoreQueryCacheLoader.java:2369 at
org.hibernate.loader.loader.listLoader.java:2364 at
org.hibernate.loader.criteria.CriteriaLoader.listCriteriaLoader.java:126
我在网上查过,但我真的不知道该怎么做。有什么建议我该如何将查询转换为可执行查询吗?您想在查询中添加一个限制,即查询吗?顺便说一句,既然您想使用整个sql查询,为什么还要麻烦使用带有限制的条件呢?这是一个查询:SELECT*FROM job JOIN job\u应用程序作为j ON id=id\u job,其中id=SELECT id\u job FROM SELECT id\u job,按id_job作为foo对来自job_应用程序组的id_job_搜索者进行计数,其中COUNT=x,我从条件中的过滤器输入收集所有查询,然后执行条件,结果将显示在我的JqueryDatatable中。