我有一个对象,我需要在其中查询并将其作为 Map 返回,但我不想再次迭代该对象,因为我已经在进行查询并且它的性能可能很差。
List<MyObject> myObjectList = MyObject.createCriteria().list(params) {
...
}
但我需要的是像这样的 map :
myObjectList.each { MyObjectList myObject ->
myMap.add([person: myObject.person, myObject: myObject, listIntoObject: myObject.listInsideObject as List])
}
我找到了另一种方法来获取这样的 map ,但它仍然不是从我用 GORM 查询的列表中获取 map 的更好方法......
myMap = myObjectList.collect{ [person: it.person, myObject: it, listIntoObject : it.invoiceDetails as List] }
有没有更好的方法来使用 GORM 获取 map ?
最佳答案
您可以使用 org.hibernate.transform.Transformers
将结果转换为实体映射
import org.hibernate.transform.Transformers
def criteria = MyObject.createCriteria()
criteria.resultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
def myObjectList = criteria.list(params) {
...
}
您也可以退回到 HQL。引用 更新 a similar的部分回答更多细节。
关于grails - 有什么方法可以从 Grails 中的 createCriteria 返回带有某些字段的 Map 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32237680/