简化的域模型:
“Txn”(如交易中)有许多“TxnStatus”。 TxnStatus 有一个日期时间
这是一个遗留映射,所以我无法更改 DB、Txn 上的映射:
static mapping = {
txnStatus column: 'MessageID', ignoreNotFound: true, fetch: 'join'
}
我需要根据一些动态构建的标准获取 Txns,目前使用 GORM 的“where”查询,效果很好;但我还需要只得到latesttxn状态。
Tried:
def query = Txn.where {
txnStatus { dateTime == max(dateTime) }
}
gives: 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...任何帮助表示赞赏!
前几天有一个问题和这个很相似。看来使用带有 'max' 子查询的 where 查询不能很好地与 == 配合使用
OP 能够让它与
这是一个非常疯狂的猜测 -
Txn.where {
txnStatus {
dateTime == property(dateTime).of { max(dateTime) }
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)