2017-09-15 82 views

回答

1

此代码应该为你工作,

List searchList = personsDto*.name // considering this as a list 
    List<Person> persons = Person.withCriteria { 
     or { 
     searchList.each { name -> 
      // iLike will search result for both Cases 
      ilike('property', "%$name%") 
     } 
     } 
    } 
    //printing list dump 
    Println persons.dump() 
+0

此解决方案。但是,它不是高性能的。它迭代所有项目并比较名称。如果你有更好的解决方案,我会很乐意接受。谢谢。 –

+0

如果您必须为此执行查询,您可以使用具有条件的grails或使用简单SQL查询的相同事件执行'in'查询,如果列表包含大量数据,则比较列表本身并不是一种好的做法,需要像在迭代中一样在SQL级别执行该操作,但如果列表内容有限,这并不坏。 –

+0

“它不是高性能的,它遍历所有项目并比较名称。” - 要清楚的是,它遍历'personDto'中的所有名称,但不遍历数据库中的所有'Person'实例。我想你可能已经知道了,但只是澄清。 –