単純化されたドメイン モデル: 'Txn' (トランザクションのように) hasMany 'TxnStatus'. TxnStatus には dateTime があります
これはレガシー マッピングであるため、Txn のマッピングである DB を変更することはできません。
static mapping = {
txnStatus column: 'MessageID', ignoreNotFound: true, fetch: 'join'
}
現在GORMの「where」クエリを使用して、動的に構築された多数の基準に基づいてTxnを取得する必要がありますが、うまく機能します。しかし、最新の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 に変更することを考えています...助けていただければ幸いです!