![](/img/trans.png)
[英]Grails + Mongodb + Spock: NullPointerException being thrown when doing embedded field query
[英]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.