从grails中的列表中获取特定行

从grails中的列表中获取特定行,grails,groovy,grails-controller,Grails,Groovy,Grails Controller,我是grails的新手。我需要制作一份报告。这就是为什么我编写了一个返回3行4列的查询。现在我需要将列表中的每一行保存在不同的对象中。 我也不知道。谁能帮我一下吗?以下是我的尝试: public List<GroovyRowResult> createDataResultForShoreBank(List<GroovyRowResult> listPrincipalOutstandingData){ def val = listPrincipalOutst

我是grails的新手。我需要制作一份报告。这就是为什么我编写了一个返回3行4列的查询。现在我需要将列表中的每一行保存在不同的对象中。 我也不知道。谁能帮我一下吗?以下是我的尝试:

public List<GroovyRowResult> createDataResultForShoreBank(List<GroovyRowResult> listPrincipalOutstandingData){
        def val = listPrincipalOutstandingData.collect { it.values()}
        println("value  >>> "+val)

}
列表PrincipalOutstandingData如下>>>

/* listPrincipalOutstandingData */

       SELECT   lat.project_info_id, la.original_loan_duration, COUNT(la.id) AS loanCount, SUM(lat.principal_outstanding) AS pos
       FROM     loan_account_transaction AS lat
                INNER JOIN loan_account AS la ON (la.id = lat.`loan_account_id`)
                LEFT JOIN group_info AS gi ON (gi.id = lat.`group_info_id`)
                INNER JOIN
                (
                SELECT MAX(ilat.id) AS max_lat_id, ilat.loan_account_id
                FROM loan_account_transaction AS ilat
                WHERE ilat.`domain_status_id` = 1 AND  ilat.`office_info_id` = (SELECT id FROM office_info WHERE office_code =  'UG500013') 
                AND ilat.`project_info_id` IN ('BI0000000000000000000001','BI0000000000000000000003','BI0000000000000000000004') AND ilat.transaction_date <= '2013-04-26'
                GROUP BY ilat.loan_account_id
                ) AS tlat ON (tlat.loan_account_id = lat.`loan_account_id` AND tlat.max_lat_id = lat.id)
                WHERE  lat.`office_info_id` = (SELECT id FROM office_info WHERE office_code =   'UG500013') 
                AND lat.`project_info_id` IN ('BI0000000000000000000001','BI0000000000000000000003','BI0000000000000000000004')
                AND lat.`loan_status_id` != 2 AND lat.`loan_status_id` != 7 AND la.`domain_status_id` = 1 AND lat.`domain_status_id` = 1

                GROUP BY lat.project_info_id, la.original_loan_duration;

我不知道你想要什么。您的报告是一个页面,您需要将结果数据发送到此页面,或者是一个报告?listPrincipalOutstandingData的内容是什么?我将给出listPrincipalOutstandingData sql。也许它可以帮助你理解。每一行已经是一个独立的对象。他们真是太棒了。它们包含在另一个对象中:列表。你能更具体地说明什么不起作用以及你尝试了什么吗?@codelark从sql中我得到了五行,每行有四列。我需要的是将每行的每一列值保存在不同的变量中。这意味着在20个变量中有5*4=20个值。我已经尝试过这个>>列表val=listPrincipalOutstandingData.collect{it.values}def mf=val.get0 def mf\u loan\u count=mf.getAtloanCount printlnAll三个项目未偿本金>>>+val printlnMF未偿本金>>>+mf printlnMF loanCount 20>>>+mf\u loan\u count