域对象属性列表,不包括关联

时间:2014-09-24 17:03:14

标签: grails groovy properties associations gorm

获取域对象的所有属性的地图的最佳方法是什么,不包括关联?特别是我需要排除hasMany关联(集合。)

现在我正在硬连接要排除的属性列表:

def p = someBook.properties
p = p.subMap(p.keySet() - ['authors', 'editors', 'formats'])

我确保properties返回一个惰性集合,就subMap()和keySet()而言,这样就不会从数据库中实际提取被排除的属性。

但我宁愿不对协会列表进行硬编码。

1 个答案:

答案 0 :(得分:1)

通过从properties中删除键值对来排除所有关联。

someBook.properties.findAll { !( it.key in someBook.hasMany?.keySet() ) }