以下の 2 つのリストを Apex または VisualForce でマージする最良の方法は何ですか? データは関連していますが、一緒にクエリを実行することはできないため、2 つのリストを結合する必要があります。
注意事項:
2 つのリスト: additionalInfoQuestionMaps が親 List で、 additionalInfoQuestionAvailableResponses が子です。子の数は 1 から複数の場合があります。
Question_Type_Info__c オブジェクトのリストに参加する必要があります。
基本的には、親リストからの一連の質問です。次に、子リストにある「はい」や「いいえ」などの質問に可能な回答を関連付ける必要があります。これらの結果は、フォームの VF ページに表示されます。
public with sharing class mytest {
public List<Questions__c> additionalInfoQuestionMaps {get;set;}
public List<Available_Question_Answer_Options__c> additionalInfoQuestionAvailableResponses {get;set;}
public List<retrieveMergedQuestionList> retrieveMergedQuestionLists {get;set;}
public String buildId {get;set;}
public Build__c build {get;set;}
public mytest() {
buildId = 'a1DV00000001BBBBBB';
build = sharedfile.getBuild(buildId);
updateAdditionalInfoQuestionMaps();
updateAdditionalInfoFieldValueIds();
updateAdditionalInfoQuestionAvailableResponses();
}
public void updateAdditionalInfoQuestionMaps() {
additionalInfoQuestionMaps = new List<Questions__c>([SELECT Id, Name,
Associated_Product_Item__c,
Associated_Product__c,
Label__c,
(select Response__c from Responses_Object__r),
Question_Type_Info__c,
Required__c
FROM Questions__c
WHERE Associated_Product__c = :build.Associated_Product__c
ORDER BY Sort_Index__c, Label__c]);
}
public Set<Id> additionalInfoFieldValueIds = new Set<Id>();
public void updateAdditionalInfoFieldValueIds(){
for (Questions__c aimb : additionalInfoQuestionMaps) {
additionalInfoFieldValueIds.add(aimb.Question_Type_Info__c);
}
}
public void updateAdditionalInfoQuestionAvailableResponses() {
additionalInfoQuestionAvailableResponses = new List<Available_Question_Answer_Options__c>([select Id,
Field_Value__c, Question_Type_Info__c
from Available_Question_Answer_Options__c
where Question_Type_Info__c IN :additionalInfoFieldValueIds]);
}
}