0

我的数据库中有一个名为“District”的表:

+----+---------+-------------+----------+------+------------------------------------------------+-----------+
| id | version | description | homepage | logo | name                                           | region_id |
+----+---------+-------------+----------+------+------------------------------------------------+-----------+

所以,在我的控制器上,我有:

def show = {
        def districtInstance = District.get(params?.id)
        println districtInstance
        println params
        if(!districtInstance){
            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'district.label', default: 'District'), params.id])}"
            redirect(action : "list", params?.id)
        }
        else{
            [districtInstance : districtInstance]
        }
    }

虽然我期待看到完整的行:

| 71 |       0 | bogus  |          |      | bogus                                      |         4 |

我只看到:

bogus

在控制台上。我怎样才能访问整行?(特别districtInstance.region_id?)

4

2 回答 2

2

println districtInstance只打印toString()方法的输出。用于println districtInstance?.dump()查看更多输出,包括所有类字段。然而,它看起来不像数据库视图,因为它是一个 Groovy 对象,而不是数据库查询结果。

根据问题更新:如果您需要 region_id,您可以通过districtInstance.regionId它获取它,不需要额外的数据库调用。

于 2012-09-02T20:11:30.473 回答
1
println districtInstance?.region.id

在 Groovy 和一般的面向对象语言中,您可以像这样导航类属性,但您应该了解得墨忒耳法则

于 2012-09-02T20:23:00.350 回答