Самый простой способ - использовать метод getDomainClass
:
String domainClassName = 'com.foo.bar.Person'
def ids = 1
def domainClass = grailsApplication.getDomainClass(domainClassName).clazz
domainClass.find("from $domainClassName as m where m.job = ${ids} ").id
Обратите внимание, что если вы пытаетесь получить один экземпляр по идентификатору, используйте get
:
long id = 1234
def person = domainClass.get(id)
и если вы хотите получить несколько экземпляров и у вас есть список идентификаторов, вы можете использовать getAll
def ids = [1,2,3,4,5]
def people = domainClass.getAll(ids)
Также ДЕЙСТВИТЕЛЬНО плохая идея использовать GStrings со встроенными значениями свойств - Google 'SQL Injection'
Например, чтобы найти человека по имени:
String username = 'foo'
def person = domainClass.find(
"from $domainClassName as m where m.username=:username",
[username: username])