简化的域模型:'Txn'(如在 Transaction 中)有许多 'TxnStatus'。TxnStatus 有一个日期时间
这是一个遗留映射,所以我不能更改数据库,Txn 上的映射:
static mapping = {
txnStatus column: 'MessageID', ignoreNotFound: true, fetch: 'join'
}
我需要根据一些动态构建的条件来获取 Txns,目前使用 GORM 的“where”查询,效果很好;但我也只需要获取最新的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 ......任何帮助表示赞赏!