2011-09-22 76 views
1

我需要返回一个字符串值,所以我可以通过Restful从另一个应用程序构建一个对象。我的代码部分下面的代码片段如下:如何从Grails中的SQL查询中获取字符串值?

def searchProductionOrder (String sequentialNumber) { 
    def sql = Sql.newInstance(dbUrl, user, pwd, driverName) 
    String idProdOrder = sql.execute(""" 
     SELECT production_order.idProdOrder 
     FROM production_order production_order 
     WHERE production_order.sequential_number LIKE ${sequentialNumber} 
     """).toString(); 
    String url = ":8080/app2/api/productionOrder/"+idProdOrder 
    // call to Restful service 
    return Order 
} 

但字符串URL总是被解释(我打印了用于测试)为:

网址:8080/APP 2/API/productionOrder/true

我需要idProdOrder字符串来返回它的值,而不是布尔值。我该怎么做?

由于提前,

回答

0

而不是做执行,这将始终返回布尔的像做以下

def searchProductionOrder (String sequentialNumber) { 
    def sql = Sql.newInstance(dbUrl, user, pwd, driverName) 
    String idProdOrders = sql.rows(""" 
     SELECT production_order.idProdOrder 
     FROM production_order production_order 
     WHERE production_order.sequential_number LIKE ${sequentialNumber} 
     """) 
    if(idProdOrders.size()==1) 
    { 
     String url = ":8080/app2/api/productionOrder/"+idProdOrders[0].idProdOrder 
     // call to Restful service 
     return Order 
    } 
    else 
    { 
     //You have either no results from the query or more then 1 so do something 
    } 

} 

如果你想确保你没有得到的东西每个你可以使用sql.eachRow也是如此。该文档是here。唯一要仔细检查的是它返回的条目的名称我不确定它会执行什么操作,因为您执行production_order.idProdOrder

+0

谢谢!我会试一试! – gtludwig

+0

这个工作适合你吗? –

相关问题