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