尝试在 grails 中搜索多对多关系时出错

Errors trying to search a many to many relationship in grails

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

class Event {

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

class Appuser {


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

所以这个想法是一个用户可以有朋友,他们可以设置和拥有多个活动,他们也可以是其他用户活动的嘉宾。

我的问题是构造查询以获取特定活动的客人列表...

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

def guests = Appuser.findAllByEvent(eventInstance)

这给出了一个错误

No property found for name [event] for class

def guests = Appuser.findAllByEvents(eventInstance)

这会出错

No value specified for parameter 1

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

Appuser.findAllByEvent 没有意义,因为 class 中没有 event 属性。动态查找器只能使用持久属性。 findAllByEvents 更有可能工作,因为有一个 events 属性(由于 hasMany 而由 AST 转换添加)但是您不能使用动态查找器查询集合;您需要使用 criteria/where/HQL 查询。

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

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