这个HQL查询有什么问题? [英] what's wrong with this HQL query?

查看:152
本文介绍了这个HQL查询有什么问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆