展平嵌套的 Grails Domain 对象

Flatten a nested Grails Domain object

关于这个 ,有这套 Grails domain classes:

class Hero {
    String name
    Float level

    static hasOne = [familiar: Familiar]
}

class Familiar {
    String name
    Integer raceId

    static belongsTo = [hero: Hero]
}

如何更改查询 Hero 的结果:

[
    name: "Emphraim",
    level: 99.0,
    familiar: {
        name: "Mhyrr",
        raceId: 1
    }
]

到平坦的:

[
    {
        "name": "Ephraim"
        "level": 99.0,
        "familiar_name": "Mhyrr"
        "familiar_raceId": 1
    }
]

没有将它一一映射到新的 HashMap?我使用此代码查询 Hero class:

def hero = Hero.find {
    eq("name", "Ephraim")
}

正如 Joshua 提到的,您需要一个自定义编组器。有不同的方法,但我建议 this plugin