尝试在 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
我在构建多对多关系中的查询时遇到问题...我有这些域 类:
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