【发布时间】:2013-09-16 23:34:49
【问题描述】:
我有一个看起来像这样的查询...
def data = session.createSQLQuery("""SELECT
a.id AS media_id,
a.uuid,
a.date_created,
a.last_updated,
a.device_date_time,
a.ex_time,
a.ex_source,
a.sequence,
a.time_zone,
a.time_zone_offset,
a.media_type,
a.size_in_bytes,
a.orientation,
a.width,
a.height,
a.duration,
b.id AS app_user_record_id,
b.app_user_identifier,
b.application_id,
b.date_created AS app_user_record_date_created,
b.last_updated AS app_user_record_last_updated,
b.instance_id,
b.user_uuid
FROM media a, app_user_record b
WHERE a.uuid = b.user_uuid
LIMIT :firstResult, :maxResults """)
.setInteger("firstResult", cmd.firstResult)
.setInteger("maxResults", cmd.maxResults)
.list()
问题是 .list 方法返回一个没有列名的数组。有谁知道从 Grails 本机 sql 查询中包含/添加列名的方法。我显然可以将结果转换为地图并自己对列名进行硬编码。
【问题讨论】:
-
当您在选择查询中使用
as时,您不能访问它吗?例如:data.each{println it.get('media_id')}或it['media_id']等等。 -
我的意思是一种将结果转储到带有“标题”行的数组的方法。我必须写很多这样的查询,并且必须手动插入每列的名称很慢。
标签: sql hibernate grails grails-orm