试图在grails中搜索多对多关系的错误

时间:2015-04-28 05:01:47

标签: grails gorm

我在多对多关系中构建查询时遇到问题...我有这些域类:

class Event {

Appuser creator
static belongsTo = Appuser
static hasMany = [guests: Appuser]

class Appuser {


static hasMany = [friends: Appuser, events: Event]

因此,想法是用户可以拥有朋友,他们可以设置和拥有多个活动,他们也可以是其他用户活动的访客。

我的问题是构建查询以获取特定事件的访客列表...

我在我的控制器中试过了:

def guests = Appuser.findAllByEvent(eventInstance)

这会产生错误

  

找不到类的属性

def guests = Appuser.findAllByEvents(eventInstance)

这会产生错误

  

没有为参数1指定值

任何想法如何补救?感谢。

1 个答案:

答案 0 :(得分:2)

Appuser.findAllByEvent没有意义,因为类中没有event属性。动态查找程序只能使用持久属性。 findAllByEvents更有可能工作,因为存在events属性(由于hasMany而由AST转换添加),但您无法使用动态查找器查询集合;你需要使用标准/ where / HQL查询。

但您根本不需要查询 - 只需使用您声明的hasMany属性:

Event eventInstance = ...
def guests = eventInstance.guests