这个HQL查询有什么问题? [英] what's wrong with this HQL query?
问题描述
def maxIndex = VirtualSubOrder.find($ b $)在我的Grails应用程序中执行以下HQL查询: b'从VirtualSubOrder vso中选择max(vso.index),其中vso.virtualOrder =?',
[virtualOrder])
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查询有什么问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!