将域对象实例检索为Map

时间:2010-06-22 14:24:00

标签: hibernate grails hql

我想知道是否有办法将域实例检索为Map,其中key是域对象的id。

更具体我希望myDomainObject.list()返回Map而不是List。

2 个答案:

答案 0 :(得分:2)

您可以在域类中轻松创建此方法,例如:

class Person {

   String name

   static Map<Long, Person> mapAll() {
      def map = [:]
      list().each { map[it.id] = it }
      map      
   }
}

答案 1 :(得分:0)

如果这不是您需要的唯一地方,您还可以使用Burts代码通过ExpandoMetaClass扩展eiter域类或地图本身。

这将集中功能并保持域类清洁。