SqlGrammarException在' limit'附近的语法不正确sybase grails

时间:2015-07-07 11:34:27

标签: grails gorm sybase

我试图访问sybase数据库并获取

SybSQLException: Incorrect syntax near `limit`

堆栈跟踪:

Caused by: com.sybase.jdbc3.jdbc.SybSQLException: Incorrect syntax near 'limit'.

at com.sybase.jdbc3.tds.Tds.a(Unknown Source) ~[jconnect-6.0.jar:na]
at com.sybase.jdbc3.tds.Tds.nextResult(Unknown Source) ~[jconnect-6.0.jar:na]
at com.sybase.jdbc3.jdbc.ResultGetter.nextResult(Unknown Source) ~[jconnect-6.0.jar:na]
at com.sybase.jdbc3.jdbc.SybStatement.nextResult(Unknown Source) ~[jconnect-6.0.jar:na]
at com.sybase.jdbc3.jdbc.SybStatement.nextResult(Unknown Source) ~[jconnect-6.0.jar:na]
at com.sybase.jdbc3.jdbc.SybStatement.queryLoop(Unknown Source) ~[jconnect-6.0.jar:na]
at com.sybase.jdbc3.jdbc.SybStatement.executeQuery(Unknown Source) ~[jconnect-6.0.jar:na]
at com.sybase.jdbc3.jdbc.SybPreparedStatement.executeQuery(Unknown Source) ~[jconnect-6.0.jar:na]
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
... 135 common frames omitted

我有以下域类:

class MyDomain {
    String name

    static mapping = {
         datasource 'sybase'
    }
}

当我致电MyDomainClass.findByName('FooBar')时,我得到了例外。

我知道在sybase中没有关键字限制,但由于GORM创建了相应的sql语句,我不知道如何解决这个问题。

使用以下hibernate方言:

org.hibernate.dialect.SybaseASE15Dialect

DataSource配置:

dataSources:
   dataSource:
     pooled: true
     jmxExport: true
     driverClassName: org.postgresql.Driver
     dialect: org.postgresql.PostgreSQLDialect
     username: ${database.user}
     password: ${database.password}
   sybase:
     driverClassName: com.sybase.jdbc3.jdbc.SybDriver
     dialect: org.hibernate.dialect.SybaseASE15Dialect
     username: ${database.sybase.user}
     password: ${database.sybase.password}
     url: jdbc:sybase:Tds:${database.sybase.url}:${database.sybase.port}/db

postgres的URL在不同的环境(开发,测试和生产)中,sybase是针对所有阶段修复的,所以我在那里进行了配置。

编辑:

我刚刚发现它不是sybase问题,它与我使用的第二个数据源有关,这是一个Postgres数据库,但我仍然不知道究竟是什么原因造成的这个问题。

仅使用sybase数据源解决了这个问题。

EDIT2:

我解决了这个问题。 Grails 3.0.1(https://github.com/grails/grails-core/issues/9011)中存在一个错误,该错误在3.0.2中得到修复

0 个答案:

没有答案