1

我有两张桌子:

surveyTemplateHeader
surveyTemplateQuestions

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

var q = dao.getSurveyTemplateDetails( surveyTemplateID = ARGUMENTS.surveyTemplateID );

然后使用 Coldbox 使用surveyTemplate查询数据填充我的模型:

var surveyTemplateObj = populator.populateFromQuery( beanFactory.getInstance("surveyTemplate"), q );

这是可行的,但是,该模型仅填充了一个问题。我正在测试的调查模板包含三个问题。

property name我试图在我的模型中正确设置一个以使用fieldtype="one-to-many",但这似乎没有什么不同。

property name="surveyTemplateQuestionID" fieldtype="one-to-many";

虽然 Coldbox 的模型文档总体上非常好,但我无法找到答案,这可能意味着我在实现这一点时偏离了轨道。

任何见解将不胜感激。

4

2 回答 2

1

所以,我为此所做的就是在我的模型中注入了一个surveyTemplateQuestions模型surveyTemplate

property name="surveyTemplateQuestions" inject="surveyTemplateQuestions";

然后我surveyTemplateQuestions用问题查询设置属性:

surveyTemplateObj.setSurveyTemplateQuestions(qQuestions);

不完全是我想要的,但它现在有效。

于 2017-01-17T20:11:47.987 回答
0

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

var surveyTemplateObj = [];

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

API 文档信息 http://apidocs.ortussolutions.com/coldbox/4.3.0/coldbox/system/core/dynamic/BeanPopulator.html#populateFromQuery()

于 2017-01-17T09:55:41.503 回答