如何通过GORM中的'in'子句计算记录数

时间:2013-04-23 15:54:50

标签: grails gorm

我想运行类似于:

的SQL查询

SELECT count(*) from WORDS where wordId in (4,5,6)

我怎样才能在Gorm中写这个?我知道grails有countBy*但我不能将[4,5,6]之类的多个值传递给它。

我应该使用execute吗?

2 个答案:

答案 0 :(得分:1)

您还可以在投影中使用rowCount来计算结果的行数。请注意idLong

Words.createCriteria().get {
  'in'('id', [4,5,6]*.toLong()) //or [4L, 5L, 6L]
  projections {
    rowCount()
  }
}

答案 1 :(得分:0)

您可以使用projections

Words.createCriteria().get {
  'in'('id', [4,5,6])
  projections {
    count('id')
  }
}