gpt4 book ai didi

grails - 如何遍历Groovy中的列表并为每个对象添加属性

转载 作者:行者123 更新时间:2023-12-02 15:11:14 25 4
gpt4 key购买 nike

我有一个类似这样的事件列表:

事件= Events.all
Events通过模仿approach from spring-security-pluginUsers类与UserEvents有多对多关系:

我想找出User是否正在参加Event,可以通过运行以下命令来做到这一点:

UserEvent.get(currentUserId, eventId)

问题

如何在列表 events的所有元素上执行此操作,以便在我的 View 层中轻松找到 currentUserId是否将参加 Activity ?

最佳答案

您可以像这样查询所有关联的UserEvent:

def user = ...
def events = UserEvent.findAllByUser(user).event

这是一个相当有效的查询,因为它执行的SQL类似于
select * from user_event where user_id=?

然后加载每个 Event。尽管这是N + 1,因为它会分别加载每个事件,因此您可以通过以下方式更有效地执行此操作:
def eventIds = UserEvent.findAllByUser(user).eventId
def events = Event.getAll(eventIds)

第一行使用与上面相同的SQL来获取事件ID,然后第二行像
select * from event where id in (?, ?, ?, ...)

关于grails - 如何遍历Groovy中的列表并为每个对象添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15141202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com