2011-09-22 2 views
1

Restful을 통해 다른 앱에서 개체를 만들 수 있도록 String 값을 반환해야합니다.Grails에서 SQL 쿼리의 String 값을 얻는 방법은 무엇입니까?

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은 언제나처럼 (그리고 내가 테스트를 위해 그것을 인쇄) 해석 : 내 코드의 일부 다음 코드는 다음과

URL : 8080/APP2/API/productionOrder/true

부울 값이 아닌 값을 반환하려면 idProdOrder String이 필요합니다. 그렇게하려면 어떻게해야합니까? 사전에

감사합니다, 대신 항상 부울을 반환하는 실행 일을

답변

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입니다. 중복 체크하는 것만이 반환하는 엔트리의 이름입니다. 당신이 작업 한 이후로 무엇을 할 것인지 확실하지 않습니다.

+0

고마워요! 나는 그것을 시도 할 것이다! – gtludwig

+0

이 기능을 사용하셨습니까? –

관련 문제