0

オープンソースアプリケーション(OSTicket)の既存のDBを使用しています。2つのテーブルがあります(OstStaffとOstTicket、スタッフは多くのチケットを持っています)。ただし、大きな問題は、チケットがまだOstStaffに割り当てられていない場合に、OSTicketがデフォルト値のゼロをOstTicket.staff_idに割り当てることです。

この問題は、チケットを検索したときに、インデックスが0のスタッフがいるとGORMが判断した場合に発生します。nullをチェックすることすらできず、次のエラーが発生し続けます。

No row with the given identifier exists: [com.facilities.model.OstFacStaff#0]. 
Stacktrace follows:
Message: No row with the given identifier exists: [com.facilities.model.OstFacStaff#0]

この問題を回避する方法について何か提案はありますか?ありがとう。

4

1 に答える 1

0

これを解決するには、レコードではなくIDを取得し、ゼロインデックスを削除します。

def ticketCriteria = OstFacTicket.createCriteria()
def staffIdsWithTickets = ticketCriteria.list {
    projections {
        distinct("staff.id")  // **INSTEAD of returning staff, get the id**
    }
    between("created", start, end)
}

def zeroIndex = staffIdsWithTickets.indexOf(0)
if (zeroIndex >= 0) {
    staffIdsWithTickets.remove(zeroIndex)
}
于 2012-05-30T19:29:47.563 に答える