我们在没有休眠的Grails 2.3.5应用程序中使用MongoDB。有没有办法使用resultTransformer
将属性投影转换为Map
,就像在hibernate中一样。
例如:
User.withCriteria {
resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP)
projections {
property('name', 'fullName')
}
def now = new Date()
between('joinDate', now-365, now)
}
这适用于休眠。 Grails MongoDB是否支持此功能,或者对此有一些替代方法。
答案 0 :(得分:1)
没有ResultTransformer是Hibernate特定的API,因此无法使用。您可以编写一个通用的PostQuery事件监听器(请参阅http://grails.github.io/grails-data-mapping/api/org/grails/datastore/mapping/query/event/PostQueryEvent.html),它可以转换结果并注册一个监听器(http://grails.github.io/grails-data-mapping/api/org/grails/datastore/mapping/engine/event/AbstractPersistenceEventListener.html)
但这是一种通用方法,而不是真正按每个查询进行