1

我有两个表:EventSession 和 EventTrack

EventSession 有很多 EventTrack,但也可以没有 EventTrack。EventTrack 属于 EventSession。

如何获取没有 EventTrack(零)的所有 EventSession。就像是:

def es = EventSession.createCriteria()
def _es = es.list {
   count("eventTracks") == 0  // I know this is wrong
}

谢谢。

4

3 回答 3

1

HQL 可以为您做到这一点:

String hql = "select e from EventSession e " +
             " where not exists(select 1 from EventTrack t where t.eventSession = e)"
List<EventSession> eventsWithoutTracks = EventSession.executeQuery(hql)

我认为您可以对createCriteria()左外连接执行相同的操作,过滤 EventTrack 的 id 为空的位置(未测试)

def es = EventSession.createCriteria().list() {
  eventTracks {
    isNull('id')
  }
}
于 2012-08-28T00:14:27.423 回答
1

哪里

EventSession.where { count(eventTracks) == 0 }

标准

EventSession.withCriteria {
  isEmpty 'eventTracks'
}
于 2012-08-28T11:49:29.593 回答
0

EventSession.findAllByEventTracksIsNull() 怎么样?

于 2012-08-28T00:17:05.870 回答