Есть ли способ привести строку результата, полученную при вызове хранимой процедуры, к конкретному объекту, чтобы я мог передать только список этого объекта в представление?
Я знаю, что могу использовать для этого такие вещи, как Node.list (), но в конце концов я собираюсь заменить getnodes () довольно сложной хранимой процедурой, которая создает временные таблицы и выполняет некоторые оптимизированные sql fu. Но сейчас я просто работаю над взаимодействием Грааля.
Итак, на стороне MySQL у меня есть следующая хранимая процедура:
CREATE DEFINER=`root`@`255.255.255.255` PROCEDURE `getnodes`()
BEGIN
select * from node;
END
На контроллере Grails у меня есть следующее:
def nodes = new ArrayList<Node>()
// collect all the nodes returned
sql.eachRow("{call getnodes()}") {
nodes.add(it as Node)
}
println "Nodes size is: " + nodes.size()
nodes.eachWithIndex { d, i ->
println "$i : $d"
}
Мой план состоит в том, чтобы затем передать узлы представлению.
Проблема в том, что он взрывается на линии:
nodes.add(it as Node)
Это вообще возможно? Я имею в виду, это должно просто принуждать, верно? Что я делаю не так?