【问题标题】:Grails using Mongodb : Spock Exception thrown when using withCriteria使用 Mongodb 的 Grails:使用 withCriteria 时抛出 Spock 异常
【发布时间】:2015-09-10 11:37:06
【问题描述】:

在我的一项服务中,我正在尝试执行以下操作:

User.withCriteria {
    eq( "location.city", city)
}

它会抛出以下 NullPointerException 类似于this question

java.lang.NullPointerException
    at org.grails.datastore.mapping.keyvalue.mapping.config.KeyValuePersistentEntity.getPropertyByName(KeyValuePersistentEntity.java:75)
    at grails.gorm.CriteriaBuilder.validatePropertyName(CriteriaBuilder.java:954)
    at grails.gorm.CriteriaBuilder.eq(CriteriaBuilder.java:435)
    at com.apposit.terra.connect.service.OrganizationService.getAllOrganizationsInZone_closure9(OrganizationService.groovy:322)
    at grails.gorm.CriteriaBuilder.invokeClosureNode(CriteriaBuilder.java:980)
    at grails.gorm.CriteriaBuilder.invokeMethod(CriteriaBuilder.java:314)
    at org.grails.datastore.gorm.GormStaticApi.withCriteria_closure11(GormStaticApi.groovy:305)
    at org.grails.datastore.mapping.core.DatastoreUtils.execute(DatastoreUtils.java:302)
    at org.grails.datastore.gorm.AbstractDatastoreApi.execute(AbstractDatastoreApi.groovy:37)
    at org.grails.datastore.gorm.GormStaticApi.withCriteria(GormStaticApi.groovy:304)

当我像答案中建议的那样使用它时:

User.withCriteria {
    location { 
        eq( "city", city)
    }
}

这个新的 NullPointerException 被抛出。

java.lang.NullPointerException  
at org.grails.datastore.mapping.query.Query.resolvePropertyValue(Query.java:268)    
at org.grails.datastore.mapping.query.Query.addToJunction(Query.java:636)   
at org.grails.datastore.mapping.query.Query.add(Query.java:141)     
at org.grails.datastore.mapping.query.Query.add(Query.java:131)     
at grails.gorm.CriteriaBuilder.addToCriteria(CriteriaBuilder.java:1141)     
at grails.gorm.CriteriaBuilder.eq(CriteriaBuilder.java:459)

我应该用什么?

【问题讨论】:

    标签: mongodb grails grails-orm spock


    【解决方案1】:

    mongo-plugin 没有完全实现标准支持,这很好,因为您应该使用本机 mongo 查询来进行子文档查找等等。

    这就是你的情况:

    User.collection.find( [ 'location.city':city ] ).list()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 2016-04-06
      相关资源
      最近更新 更多