如何通过grails中的userId检查连接表中的某些数据?

时间:2016-05-10 11:26:31

标签: grails gorm

首先,我想告诉我,这是一个相当新的grails,也许可能是这个问题似乎很容易,但我花了几个小时的时间。

我试图检查用户他的过期数据是否已过期

Date currentDate = new Date(System.currentTimeMillis())
        def authRequest = Authentication.findAllByExpiresLessThan(currentDate)

使用up方法,我可以让列表中的所有用户过期数据已过期。请注意,我正在获取列表

我的问题现在来了,因为如果他的过期数据已过期,我需要将用户的状态更改为REQUESTED =>活性。这就是我不知道如何从我从authRequest请求的数据开始检查grails,因为我可以在调试模式中看到我获得了具有该对象的所有列,但不知道怎么能我加入了另一张桌子

This is table/domain user:
name|surname|status|user_id
bob   len    REQUESTED asdfwerrg
Marc  Marc   ACTIVE    jryut6u5u

This is table/domain authentication
expires             |  user_id
2016-04-17 11:38:50 | asdfwerrg
2016-05-10 11:38:50 | asdfwerrg

希望解释没问题,并提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用

def user = User.findAllByUserIdInList(authRequest.userId.toList())

然后

user.each{
     it.status = "ACTIVE"
     it.save(flush:true)
}

有关详细信息,请参阅http://grails.github.io/grails-doc/2.1.0/ref/Domain%20Classes/findAllBy.html

由于