Grails GORM可以';不要发出HQL请求

Grails GORM可以';不要发出HQL请求,grails,hql,gorm,Grails,Hql,Gorm,我有一个奇怪的关于圣杯的错误。我想返回一些持久化数据,所以我对其执行了一个HQL查询。我需要从一个域类中检索一个列表,它有一个manytone关系 查询非常基本,请自己查看: def listActuel = PositionnementProfil.find("FROM PositionnementProfil as pp where pp.positionnement.libelle='actuel'") 但我得到了这个错误: 错误500:执行控制器[package.ProfilContr

我有一个奇怪的关于圣杯的错误。我想返回一些持久化数据,所以我对其执行了一个HQL查询。我需要从一个域类中检索一个列表,它有一个manytone关系

查询非常基本,请自己查看:

def listActuel = PositionnementProfil.find("FROM PositionnementProfil as pp where pp.positionnement.libelle='actuel'")
但我得到了这个错误:

错误500:执行控制器[package.ProfilController]的操作[positionnement]导致异常:域类[class package.PositionnementProfil]的无效查询[FROM PositionnementProfil as pp where pp.Enterprise.libelle='Orange']

因此,在怀疑中,我尝试了一个更基本的查询,只是为了确定,当我不断出现这种错误时,我决定尝试另一个类。仍然通过这段代码得到了这条奇妙的信息:

def test = Profil.find("FROM Profil as p where p.firstName like='Jean'")
//NOtice I executed more complex queries on this class with success, here not
Eevn虽然我是grails新手,但我不认为自己是个傻瓜(上帝啊,请告诉我我做的一切都是对的:D),我还是再次遵循grails doco(http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20%28GORM%29.html#5.4.3%20Hibernate%20Query%20Language%20%28HQL%29),我通过执行“grails clean”清理了我的项目,重新启动了我的电脑,但仍然出现了这个问题。我不知道为什么,但它似乎只有在我的代码的这一部分有问题:

class ProfilController {

def scaffold = Profil


    def positionnement = {
        def test = Profil.find("from profil as p where p.firstName like 'Jean'")
    }

    //... I've put this code in other places, but I don't believe in "supernatural" places
}

我真的不知道如何摆脱这一切。其他症状是,Netbeans无法识别GORM自动完成。

我想我记得最近出现了一个关于
find()
findAll()
区分大小写的问题,但这对您没有帮助,因为修复程序将在2.0中进行。但是简单的解决方法是使用
executeQuery()
,因为这只是到Hibernate HQL的直接挂钩:

def listActuel = PositionnementProfil.executeQuery(
       "FROM PositionnementProfil as pp where pp.positionnement.libelle='actuel'")[0]

除了方法名称之外,唯一的区别是,由于
executeQuery()
返回一个
列表
,因此您需要使用
[0]

获取第一个元素,但周五没有发送我的感谢评论。所以谢谢你的帮助:)