У меня есть SOQL ниже, и я получаю результат, содержащий идентификатор sObject. Мое предположение заключалось в том, что запрос также вернет поля SObject. Например, мой запрос пытается получить «startDay__c
» (дата), который похож на поле объекта ShigotoShousai. Но результатом запроса является просто идентификатор экземпляра sObject.
(родительский: ShigotoShousai
дочерний: ShigotoAssign
)
sObject[] result = [
SELECT
ShigotoShousai__r.id,
ShigotoShousai__r.startDay__c
FROM ShigotoAssign__c
];
вывод system.debug(результат)
shigotoAssign_c:{Id=a06500000067aNjAAI, ShigotoShousai_c=a055000000DlHnOAAV}, shigotoAssign_c:{Id=a06500000067aNoAAI, ShigotoShousai_c=a055000000DlHnTAAV}
Я получил ID объекта ShigotoShousai__c sObject вместо его свойства "startDay__c
". Я думал, что вывод будет примерно таким:
shigotoAssign__c:{ShigotoShousai__c=a055000000DlHnOAAV, startDay__c=2010-10-10},
shigotoAssign__c:{ShigotoShousai__c=a055000000DlHnTAAV, startDay__c=2010-10-13})
Но результат запроса только что вернул мне идентификатор объекта ShigotoShousai__c :(
Теперь я знаю, что у меня есть значение идентификатора ShigotoShousai__c
и я хочу получить доступ к его полю, поэтому я сделал следующее.
ShigotoShousai__c foo = (ShigotoShousai__c)result[0].get('ShigotoShousai__c');
//now I assume I can access to some fields like below
system.debug(foo.workDate);
И это дает мне ошибку:
System.TypeException: Invalid conversion from runtime
type Id to SOBJECT:shigotoShousai__c
Затем я понял, что ID нельзя использовать для ссылки на SObject (например, ShigotoShousai__c).
Но у меня есть его идентификатор. Как я могу получить доступ, скажем, startDay__c
? Есть ли способ использовать этот идентификатор?