GORM findAll + 无法将动态列表作为命名参数传递

GORM findAll + cannot pass dynamic List as named parameter

我在以下 HQL 中收到以下异常。

java.util.ArrayList cannot be cast to java.lang.String.

显然我遗漏了一些东西但是不能,无法弄清楚。有人可以指点一下吗?

def methodA(List<String> key1List, List<String> key2List){
   def results = DomainX.findAll("from DomainX x where (x.key1 in (:key1_s)) and (x.key2 in (:key2_s))",[key1_s:key1List, key2_s:key2List])
}

以下有效但以上无效:

def methodA(List<String> key1List, List<String> key2List){
   def results = DomainX.findAll("from DomainX x where (x.key1 in (:key1_s)) and (x.key2 in (:key2_s))",[key1_s:['ABC'], key2_s:['DEF']])
}

这是我的错误。 key2List 就像 [[key2_a], [key2_b]]; GORM 期望这是一个扁平化的列表 [key2_a, key2_b]