1

EventSessionとEventTrackの2つのテーブルがあります

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がnullの場合はフィルタリングします(テストされていません)。

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 に答える