maia/.svn/pristine/ca/ca65ef25981ed60deee1fd022b6...

43 lines
1.3 KiB
Plaintext
Executable File

package com.fp.general.rules.query;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.dto.Response;
import com.fp.dto.query.QueryRequest;
import com.fp.dto.rules.QueryRule;
import org.hibernate.SQLQuery;
import org.hibernate.ScrollableResults;
import java.util.ArrayList;
import java.util.List;
/**
* Clase que se encarga de ejecutar un query que se envía desde la parte web
* @author scastillo
*/
public class ExecuteSQL extends QueryRule {
/**
*
* @param pQueryRequest
* @return
* @throws Exception
*/
public QueryRequest process(QueryRequest pQueryRequest) throws Exception {
Response response = pQueryRequest.getResponse();
String sql = (String) pQueryRequest.get("sql");
String isUniqueResult = (String) pQueryRequest.get("isUniqueResult");
SQLQuery qry = PersistenceHelper.getSession().createSQLQuery(sql);
if (isUniqueResult.equals("Y")) {
Object data = qry.uniqueResult();
response.put("result", data);
} else {
ScrollableResults scrollableResults = qry.scroll();
List<Object> lObject = new ArrayList<Object>();
while (scrollableResults.next()) {
lObject.add(scrollableResults.get());
}
response.put("result", lObject);
}
return pQueryRequest;
}
}