VirtualSubOrder 类肯定有一个(整数)索引属性和一个 virtualOrder 属性。
当我尝试执行上面的查询时,出现错误:
org.codehaus.groovy.grails.orm.hibernate.exceptions.GrailsQueryException:无效查询[从VirtualSubOrder vso选择max(vso.index)vso其中vso.virtualOrder =?] class [class com.example.VirtualSubOrder]
解决方案
我相信你想用 VirtualSubOrder.executeQuery()而不是 find()。 find 用于返回域实例, executeQuery 用于任意HQL。
I'm executing the following HQL query in my Grails app:
def maxIndex = VirtualSubOrder.find( 'select max(vso.index) from VirtualSubOrder vso where vso.virtualOrder = ?', [virtualOrder])The VirtualSubOrder class definitely has an (Integer) index property and a virtualOrder property.
When I try to execute the query above I get the error:
org.codehaus.groovy.grails.orm.hibernate.exceptions.GrailsQueryException: Invalid query [select max(vso.index) from VirtualSubOrder vso where vso.virtualOrder = ?] for domain class [class com.example.VirtualSubOrder]
解决方案
I believe you want to use VirtualSubOrder.executeQuery() instead of find(). find is for returning domain instances and executeQuery is for arbitrary HQL.
更多推荐
这个HQL查询有什么问题?
发布评论