【问题标题】:Using result transformer in mongodb criteria在 mongodb 标准中使用结果转换器
【发布时间】:2014-05-13 06:13:18
【问题描述】:

我们在没有休眠的 Grails 2.3.5 应用程序中使用 MongoDB。有什么方法可以使用resultTransformer 将属性投影转换为Map,就像在休眠中一样。

例如:

  User.withCriteria {
        resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP)
        projections {
            property('name', 'fullName')
        }
        def now = new Date()
        between('joinDate', now-365, now)
  }

这在休眠状态下有效。 Grails MongoDB 是否支持此功能或有其他替代方法。

【问题讨论】:

    标签: grails grails-2.3


    【解决方案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

    但这是一种通用方法,并不是真正针对每个查询进行的

    【讨论】:

    • 不是真的要根据每个查询完成是什么意思。你能解释一下吗?如果用于域类,这会导致性能下降吗?
    • 我的意思是,当您按照上述添加查询侦听器时,它将全局添加到应用程序中的所有查询中
    • 哦,我明白了。将不得不尝试不同的东西。
    猜你喜欢
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    相关资源
    最近更新 更多