【问题标题】:jpa incorrect syntax near 'limit''limit'附近的jpa语法不正确
【发布时间】:2019-12-30 08:04:56
【问题描述】:

谁能告诉我,如何使用 Spring Data JPA 检索特定列的最大值。

我一直在尝试使用 spring data JPA 参考文档中给出的 findTopByOrderByIdDesc 方法,但我得到“'limit'异常附近的语法不正确。

spring data JPA 的方法签名是

用户 findTopByOrderByAgeDesc();

我正在尝试使用相同的方法签名,这里该方法不期望任何参数通过,但根据异常情况,我通过了限制。

即使我尝试将方法名称更改为 User findTop1ByOrderByIdDesc();

但这确实有效。 而且我不想使用@Query("some query")

public User getmaxSequence() {
        User user=new User();

        try {
            user=   userRepository.findTopByOrderByIdDesc();

        }catch(Exception e) {
            e.printStackTrace();
        }

        return user;
    }

当我运行代码时,我得到了异常堆栈跟踪。

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 'limit'.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:254)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1608)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:578)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:508)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7240)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2869)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:243)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:218)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:434)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:60)
    ... 150 more

【问题讨论】:

    标签: sql-server hibernate spring-data-jpa


    【解决方案1】:

    您必须在 application.properties 中设置 Hibernate 方言:

    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
    

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 2015-03-24
      • 2013-12-16
      • 1970-01-01
      • 2018-08-14
      • 2011-03-11
      相关资源
      最近更新 更多