我们在grails 2.3.5应用程序中使用mongodb,没有hibernate。当在具有最少两个字段的条件中使用投影时,返回的结果与在hibernate条件中返回的结果不同。例如:
List usersList = User.withCriteria {
projections {
id() // For mongodb
//property("id") // For hibernate
property('name', 'fullName')
}
def now = new Date()
between('joinDate', now-365, now)
maxResults(2)
}
考虑返回两个符合上述条件的实例:-
使用mongodb返回的结果将是:
[[1, 2], ['XYZ', 'ABC']]
而使用hibernate时返回的结果将是:
[[1, 'XYZ'], [2, 'ABC']]
我不确定这是通过实现还是这是一个bug。
谢谢你,
SA
MongoDB插件的哪个版本?这是过去的一个错误,但已修复,见
https://github.com/grails/grails-data-mapping/blob/master/grails-datastore-gorm-mongodb/src/test/groovy/org/grails/datastore/gorm/mongo/ProjectionsSpec.groovy L38
验证行为是否正确