我使用Grails 1.3.7和MSSQL Server 2008的 通过两个动态查找器或标准,这样做简单的查询:的Grails产生怀疑分页查询为MSSQL
Invoice.findAllByClient(client, [max: 25, offset: 100000, sort: 'title'])
或
Invoice.createCriteria().list(max: 25, offset: 100000) {
eq('client', client)
order('title')
}
并观看投向MSSQL服务器的实际查询:
select top 100000 etc
该查询明显效率低下。对于Grails来说,这是一个令人痛苦的事实,它无法为MSSQL生成有效的查询,或者我错过了一些东西?
请帮忙!
非常感谢!它非常有意义。但是,Grails 1.3.7中包含的hibernate bundle中不存在SQLServer2008Dialect类。我想升级到最新的hibernate必须完成。我对吗? –
@ Andrey.Kozyrev:你知道,我忽略了检查与Grails捆绑在一起的可用方言。不幸的是,我强烈怀疑升级Hibernate的版本可能会破坏GORM。我认为你最好打赌是创建一个自定义方言类,它复制[最新版本的方言]的实现(https://github.com/hibernate/hibernate-core/blob/master/hibernate-core /src/main/java/org/hibernate/dialect/SQLServer2005Dialect.java),或者迁移到使用Hibernate 3.5的Grails 2.0。 – ig0774