【问题标题】:Grails + Mongodb + Spock: NullPointerException being thrown when doing embedded field queryGrails + Mongodb + Spock:进行嵌入式字段查询时抛出 NullPointerException
【发布时间】:2015-02-19 08:02:32
【问题描述】:

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

Organization.withCriteria {
            eq( "active", true )
            eq( "location.region", region)
        }

正在工作,但是在单元测试中调用该方法时,我得到:

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)

【问题讨论】:

    标签: mongodb grails grails-2.0 spock


    【解决方案1】:

    应该是:

    Organization.withCriteria {
            eq( "active", true )
            location {
               eq( "region", region)
            }
    
        }
    

    如果没有,请在http://jira.grails.org/browse/GPMONGODB 提交 JIRA

    【讨论】:

    • 格雷姆,感谢您提及这一点。我试过了,它奏效了。过去,当我在同一个嵌入式字段上尝试时,我认为这给了我“在 mongo 上不允许加入”。但是为什么我的方法不能只在单元测试中起作用?
    猜你喜欢
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多