1
我有一个查询从给定列表中的Person
域搜索名称,并检索结果,但区分大小写。Groovy/Grails:用`findAllBy ... InList`过滤为不区分大小写
List<Person> persons = Person.findAllByNameInList(personsDto*.name)
我想要的是搜索的人的名字为不区分大小写。我如何使用findAll
或createCriteria
或sqlRestriction
或其他方式来做到这一点?
此解决方案。但是,它不是高性能的。它迭代所有项目并比较名称。如果你有更好的解决方案,我会很乐意接受。谢谢。 –
如果您必须为此执行查询,您可以使用具有条件的grails或使用简单SQL查询的相同事件执行'in'查询,如果列表包含大量数据,则比较列表本身并不是一种好的做法,需要像在迭代中一样在SQL级别执行该操作,但如果列表内容有限,这并不坏。 –
“它不是高性能的,它遍历所有项目并比较名称。” - 要清楚的是,它遍历'personDto'中的所有名称,但不遍历数据库中的所有'Person'实例。我想你可能已经知道了,但只是澄清。 –