Coldfusion 使用一对多关系从查询填充模型

Coldfusion 使用一对多关系从查询填充模型,coldfusion,coldfusion-9,coldbox,Coldfusion,Coldfusion 9,Coldbox,我有两张桌子: surveyTemplateHeader surveyTemplateQuestions 我想做的是从两个表中获取信息: var q = dao.getSurveyTemplateDetails( surveyTemplateID = ARGUMENTS.surveyTemplateID ); 然后使用Coldbox用查询数据填充我的模型,surveyTemplate: var surveyTemplateObj = populator.populateFromQuery(

我有两张桌子:

surveyTemplateHeader
surveyTemplateQuestions
我想做的是从两个表中获取信息:

var q = dao.getSurveyTemplateDetails( surveyTemplateID = ARGUMENTS.surveyTemplateID );
然后使用Coldbox用查询数据填充我的模型,
surveyTemplate

var surveyTemplateObj = populator.populateFromQuery( beanFactory.getInstance("surveyTemplate"), q );
这是可行的,但是,模型中只填充了一个问题。我正在测试的调查样本有三个问题

我已尝试在我的模型中正确设置
属性名称
,以使用
fieldtype=“一对多”
,但这似乎没有什么不同

property name="surveyTemplateQuestionID" fieldtype="one-to-many";
虽然Coldbox的模型文档总体上相当不错,但我无法找到答案,这可能意味着我在实现这一点时有点偏离了轨道


任何洞察都将不胜感激。

您可以循环查询以构建对象数组。populateFromQuery方法采用查询行号从查询中获取数据

var surveyTemplateObj = [];

for(var row in q){
    ArrayAppend(surveyTemplateObj, populator.populateFromQuery( beanFactory.getInstance("surveyTemplate"), q , row.currentRow));
}
API文档信息

因此,我所做的就是将一个
surveyTemplateQuestions
模型注入到我的
surveyTemplate
模型中:

property name="surveyTemplateQuestions" inject="surveyTemplateQuestions";
然后,我使用问题查询设置了
surveyTemplateQuestions
属性:

surveyTemplateObj.setSurveyTemplateQuestions(qQuestions);

这不完全是我想要的,但它现在可以用了。

谢谢你的评论,萨那。我实际上是在调查模板列表页面代码的另一部分中这样做的。区别在于我只需要标题表中的信息。我希望有一个对象代表一个完整的调查模板,以及它的所有问题。如果我循环查询并创建一个问题对象数组,我是否能够以某种方式将其“合并”到带有标题信息的模板对象中?谢谢