【发布时间】:2017-11-15 14:36:16
【问题描述】:
我有如下 HQL 连接查询
SELECT first FROM FirstTable AS first, SecondTable AS second WHERE second.firstTable = first;
以上查询返回无效查询。但是,如果我在没有SELECT first 的情况下使用相同的上述查询,则它工作得非常好。我正在使用文档中的正确语法。关于我可能遗漏的错误或任何修复的任何想法?我正在使用 Grails Dynamic finders 来运行 HQL,即,
FirstTable.findAll(hql.toString(),params)
hql 是一个字符串构建器,我使用它来构建带有所有必需参数的查询 (param)。
我得到的完整错误如下
org.codehaus.groovy.grails.orm.hibernate.exceptions.GrailsQueryException:无效查询 [SELECT first FROM FirstTable AS first, SecondTable AS second WHERE second.firstTable = first group by first.id order by first.id]域类 [class com.model.FirstTable]
FirstTable 有一个OneToMany 映射到SecondTable 和Secondtable 有一个OneToOne 映射到FirstTable
【问题讨论】:
-
先尝试删除 as。先只写FirstTable。与第二个相同
-
@XavierBouclet 我认为这不会有什么不同。无论如何,我确实尝试过它仍然有同样的错误。
-
尝试使用类似 second.firstTable.id = first.id 的 id。能否添加 FirstTable 和 SecondTable 的映射?
-
您是否尝试将其更改为 SELECT second.firstTable?
-
@RobObdeijn 是的,我有,但仍然是同样的错误。
标签: hibernate grails grails-orm