【发布时间】:2012-05-16 10:08:49
【问题描述】:
简化的领域模型: “Txn”(如在事务中)有许多“TxnStatus”。 TxnStatus 有一个 dateTime
这是一个遗留映射,所以我无法更改数据库,即 Txn 上的映射:
static mapping = {
txnStatus column: 'MessageID', ignoreNotFound: true, fetch: 'join'
}
我需要根据一些动态构建的条件来获取 Txns,目前使用 GORM 的 'where' 查询,效果很好;但我还需要获得 latest txnStatus。
试过了:
def query = Txn.where {
txnStatus { dateTime == max(dateTime) }
}
给:java.lang.ClassCastException: org.hibernate.criterion.DetachedCriteria cannot be cast to java.util.Date
也试过了:
def query = Txn.where {
txnStatus.dateTime == max(txnStatus.dateTime)
}
给出:
Compilation Error: ...
Cannot use aggregate function max on expressions "txnStatus.dateTime"
在这个阶段,我正在考虑改用 HQL...任何帮助表示感谢!
【问题讨论】:
标签: grails grails-orm