3

大家好,

我正在努力在 Force.com 平台上定制一些功能。我有一个问题问你; 我不太确定这是否可能!

是)我有的?: 2 个自定义对象 - abc 和 pqr。Abc 是标准对象 Account 和 pqr 之间的连接对象,即 Account 是 abc 的父级,然后 Pqr 是 abc 的父级。我正在通过这些对象将所有内容检索到 Account 类型的 List 中(即来自 Account 对象)。

我需要的?:我可以访问 Apex 中的 abc 对象,即 Account 的第一个孩子。是否有可能通过帐户访问 pqr 的字段?

我尝试过:通过关系名称访问对象 - Account.abc_ r[0].pqr _r[0].FIELDNAME

但它没有奏效。一些销售人员/顶尖开发人员可以帮我解决这个问题吗?

4

2 回答 2

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 记录,该对象将为空,因此作为最佳实践,您需要提前测试。PQR 对象数据也是如此。

于 2012-05-10T18:05:02.217 回答
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 的关系。如果您有任何问题,请对此发表评论。

于 2012-05-23T16:08:21.433 回答