Интересно, есть ли способ получить экземпляры домена в виде карты, где ключ - это идентификатор объекта домена.
Более конкретно, я хотел бы сделать myDomainObject.list(), чтобы вернуть карту вместоСписок.
myDomainObject.list()
Вы можете легко создать этот метод в своем доменном классе, например:
class Person { String name static Map<Long, Person> mapAll() { def map = [:] list().each { map[it.id] = it } map } }
Если это не единственное место, где вам это нужно, вы также можете использовать код Burts для расширения классов домена eiter или саму карту с помощью ExpandoMetaClass .
Это позволит централизовать функциональность и поддерживать чистоту классов вашего домена.