Hello Folks,
我正在努力在Force.com平台上自定义一些功能。我有一个问题问你;我不太确定这是否可能!
我拥有什么?:2个自定义对象 - abc和pqr。 Abc是标准对象Account和pqr之间的联结对象,即Account是abc的父对象,然后Pqr是abc的父对象。我正在通过这些对象将所有内容检索到类型为Account的列表中(即来自Account对象)。
我需要什么?:我可以访问Apex中的abc对象,即Account的第一个孩子。是否有可能通过帐户访问pqr的字段?
我尝试了什么:通过关系名称访问对象 - Account.abc_ r [0] .pqr _r [0] .FIELDNAME
但它没有奏效。 一些salesforce / apex开发人员可以帮我解决这个问题吗?
答案 0 :(得分:4)
您应该能够使用子查询获取所需的信息。这里真正的问题是如何设置您的查询。您的查询将需要访问数据模型的所有级别才能使其可用。如果您依赖于触发器或标准控制器中返回的数据,那么我建议您要求帐户对象访问其他信息。
所以我希望看到以下内容:
List<Account> accounts = [SELECT Id, Name, (SELECT Id, pqr__r.Id, pqr__r.Name FROM abc__r) FROM Account];
for (Account acct : accounts) {
string someValue = acct.abc__r[0].pqr__r.Name;
}
请记住,尽管作为一种最佳实践,您不应该像我上面那样访问子记录,因为如果没有ABC记录,那么该对象将为null,因此作为最佳实践,您将需要测试前面的那些时间PQR对象数据也是如此。
答案 1 :(得分:2)
此问题的答案如下:
List<Account> accounts = [SELECT Id, Name, (SELECT Id, pqr__r.Id, pqr__r.Name FROM abc__r) FROM Account];
for (Account acct : accounts) {
for(Abc__c abc : acct.abc__r)
{
String someValue = abc.pqr__r.Name;
}
}
注意:这里,abc_ r是对象Abc _c与Account的关系。如果您有任何问题,请对此发表评论。