3

我们有一段代码可以选择一大堆用户 ID(200,000+)。然后代码循环通过每个获取更多信息。

        def crit = Subscription.createCriteria()
        def result = crit.get {
            projections {
                rowCount()
            }
            eq('userId', userId)
            eq('deptId', deptId)
            ge('endDate', new Date())
        }

我们只想知道是否存在“有效”的记录。这工作正常。直到我们在阵列中进一步创下纪录。然后 Grails 抛出以下异常:

2012-08-13 16:00:45,518 ERROR subscription.service.SubscriptionServiceImpl(?:?) - No signature of method: static com.me.subscription.model.Subscription.createCriteria() is applicable for argument types: () values: []
groovy.lang.MissingMethodException: No signature of method: static com.me.subscription.model.Subscription.createCriteria() is applicable for argument types: () values: []

为什么这个循环对数千条记录很好,然后弹出这个异常?

通过 IntelliJ 中的调试器查看代码表明所有参数都是有效的。但是当我运行一个表达式时:

def asd = Subscription.createCriteria()

方法不见了。这不是一个模拟的方法。这是在生产中运行的。我是否达到了一些顶级边界?

4

0 回答 0