簡體   English   中英

使用Mongodb的Grails:使用withCriteria時拋出Spock異常

[英]Grails using Mongodb : Spock Exception thrown when using withCriteria

在我的一項服務中,我正在嘗試執行以下操作:

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

它拋出以下的NullPointerException這是一個類似這個問題

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)

我該怎么用?

mongo-plugin的標准支持尚未完全實現,這很好,因為您應該使用本機mongo查詢來進行子文檔查找等等。

在您的情況下,這是這樣做的:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM