我在构造多对多关系中的查询时遇到了麻烦...我有以下域类:

class Event {

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


class Appuser {


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

因此,想法是用户可以有 friend ,他们可以设置并拥有多个事件,也可以是其他用户事件的客人。

我的问题是构造查询以获取特定事件的 guest 列表。

我已经在 Controller 中尝试过:
def guests = Appuser.findAllByEvent(eventInstance)

这给出了一个错误


def guests = Appuser.findAllByEvents(eventInstance)

这给出了一个错误



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

最佳答案

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

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

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

08-05 05:05