Начальный термин выражения поля должен быть конкретным Sobject: объект
-
29-09-2019 - |
Вопрос
У меня есть только 2 объекта и простой запрос, чтобы получить данные.
Результат запроса, который хранится в массиве ccList
Согласно выводу отладки:
(
CustomThree__c:
{
Name=cusmei3 2,
customOne__c=a005000000IwnOPAAZ,
Id=a025000000FsFGQAA3
},
CustomThree__c:
{
Name=cusmei3 1,
customOne__c=a005000000IwnOUAAZ,
Id=a025000000FsFGLAA3
}
)
Как вы видете system.debug(ccList[0])
Возвращает:
CustomThree__c:{
Name=cusmei3 2,
customOne__c=a005000000IwnOPAAZ,
Id=a025000000FsFGQAA3
}
Но когда я пытаюсь получить Id
(или другое поле) Из массива возникает ошибка. Кто -нибудь может указать, что я делаю не так?
код
Object[] ccList;
ccList = [SELECT id, name, CustomOne__r.name FROM CustomThree__c];
system.debug(ccList);
system.debug('******************************************');
system.debug(ccList[0]);
system.debug(ccList[0].Id); //this one cause the error
Решение
Я думаю, что вам придется изменить тип Cclist с «объекта» на «customthetre__c». Это также даст вам проверку времени компиляции, когда вы попытаетесь написать ccList[0].SomeNonExistentFieldName__c
.
Если вы не можете сделать это и действительно нужен объект, который хранит результат, чтобы быть общим - я считаю, что это должно быть Sobject?
Не связан с StackOverflow