0

我正在使用来自开源应用程序 (OSTicket) 的现有数据库。有两个表(OstStaff 和 OstTicket,其中工作人员有很多门票)。但是,最大的问题是当票证尚未分配给 OstStaff 时,OSTicket 将默认值零分配给 OstTicket.staff_id。

当您搜索票证并且 GORM 认为有一个索引等于 0 的人员时,就会出现问题。我什至无法检查 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 回答