【问题标题】:Initialise object in apex with related data用相关数据初始化顶点中的对象
【发布时间】:2012-10-01 09:40:49
【问题描述】:

我需要一个包含子对象相关字段的单独对象。

目前我是这样做的:

Opportunity opp = [SELECT Id, Name, Account.Id, Account.Name FROM Opportunity LIMIT 1];

Account acc = new Account(
    Id        = opp.Account.Id,
    Name      = opp.Account.Name
);

在处理大型相关对象时,我必须初始化比这更多的字段,并且脚本变得非常庞大和丑陋。

将相关字段数据初始化为单独对象的最快方法是什么?

【问题讨论】:

    标签: salesforce apex-code


    【解决方案1】:

    您必须在 SOQL 查询中定义所有字段 (mor info here)。

    但如果要克隆对象,则没有必要:

    Opportunity opp = [SELECT Account.Id, Account.Name 
                       FROM Opportunity 
                       LIMIT 1];
    
    Account acc = opp.Account;
    

    自定义对象示例:

    Contract__c c = [ Select Account__r.FirstName 
                      From Contract__c 
                      Where Account__r.FirstName != null 
                      Limit 1];
    
    Account a = c.Account__r;
    

    【讨论】:

    • 如何使用自定义对象执行此操作?如果我使用 opp.Account__c 它返回一个 Id,如果我使用 opp.Account__r 它需要一个字段。编辑:看来您可以使用 __r 字段来做到这一点。
    • 谢谢,我会在一分钟内将此标记为已回答,但您的第一个语句不太正确,您只需定义要在 SOQL 查询中使用的字段。
    • 对,只是我实践中的一个传统 :) 现在编辑
    猜你喜欢
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 2013-06-27
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    相关资源
    最近更新 更多